我有一个这样的清单:
a = [(1,2,3,4), (2,3,2,2), (33,221,22,1) ...]
我希望为列表中的每个项添加第5个值,例如:
new_a = [(1,2,3,4,"new"), (2,3,2,2,"new"), (33,221,22,1,"new") ...]
我该怎么做,因为a.list或a.add会冻结我的电脑。
for item in a:
a.add("new") or a.append("new")
答案 0 :(得分:2)
内部项目不是列表,它们是元组。元组是不可变的。因此,您可能需要创建包含所需值的新元组:
new_a = [x + ('new',) for x in a]
此代码遍历a中存在的所有元组,并为每个元组创建一个由原始值组成的新元组,加上值'new'
(值('new',)
是一个元组literal:它创建一个具有一个值的新元组)。
最后,创建的所有值都将分配给新列表。
答案 1 :(得分:0)
您可以使用map
>>> map(lambda x: x + ('new',), a)
[(1, 2, 3, 4, 'new'), (2, 3, 2, 2, 'new'), (33, 221, 22, 1, 'new')]