2014-04-18 63 views
1

我的列表元組更新2D名單是這樣的:可以用Python

[('void ', 'treeInit', 'tSymbolTree *T'),('tTreeItemPtr ', 'nodeInsert', 'tTreeItemPtr *T')] 

,如果我稱之爲:

>>>list[0][0] 
void 

,現在是使用應用re.sub返回strign我的問題。 如果我打電話

>>>list[0][0] = re.sub('(\s+$),'',newItem) 
TypeError: 'tuple' object does not support item assignment 

有人能幫助我嗎?謝謝

回答

2

tuples是不可變的對象,你不能給它們賦值。您應該將元組列表轉換爲列表列表。它希望如下:

[['void ', 'treeInit', 'tSymbolTree *T'], ['tTreeItemPtr ', 'nodeInsert', 'tTreeItemPtr *T]] 

爲了您的元組列表轉換爲字符串列表,你可以這樣做:

>>> a = [('void ', 'treeInit', 'tSymbolTree *T'),('tTreeItemPtr ', 'nodeInsert', 'tTreeItemPtr *T')] 
>>> b = [list(i) for i in a] #or map(list, a) 
>>> print b 
[['void ', 'treeInit', 'tSymbolTree *T'], ['tTreeItemPtr ', 'nodeInsert', 'tTreeItemPtr *T]] 
+1

+1。或者,你也可以做'map(list,a)'。 –