用元组更新Python中的二维列表
我的列表是这样的:
[('void ', 'treeInit', 'tSymbolTree *T'),('tTreeItemPtr ', 'nodeInsert', 'tTreeItemPtr *T')]
如果我调用:
>>>list[0][0]
void
现在我遇到的问题是,我使用了 re.sub 这个函数,它返回的是一个字符串。
如果我调用:
>>>list[0][0] = re.sub('(\s+$),'',newItem)
TypeError: 'tuple' object does not support item assignment
有人能帮我吗?谢谢!
1 个回答
2
元组
是不可变的对象,也就是说你不能给它们重新赋值。你应该把你的元组列表转换成列表的列表。转换后的样子如下:
[['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]]