在python的列表中为每个列表添加一个元素

时间:2015-09-08 09:49:26

标签: python list

我有一个这样的清单:

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")

2 个答案:

答案 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')]