用元组更新Python中的二维列表

1 投票
1 回答
2378 浏览
提问于 2025-04-18 03:15

我的列表是这样的:

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

撰写回答