使用Python中的元组更新2D列表

时间:2014-04-18 10:49:35

标签: python list python-3.x tuples

我的清单是这样的:

[('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

有人能帮助我吗?感谢

1 个答案:

答案 0 :(得分: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]]