在每个子列表的第二个元素中添加一个数字

时间:2019-01-29 10:37:16

标签: python python-3.x

让我说:

a = [ [1,2], [2,9], [3,7] ]

我编辑了每个列表的第二个值

seconds = [a[1] for num in a]
i = 0

while i <= len(seconds):
    seconds[i] += 3

如何更新值以获取此值

a = [ [1,5], [2,12], [3,10] ]

3 个答案:

答案 0 :(得分:2)

您可以一次完成所有操作,而不是先保存seconds然后再进行修改,

a = [ [1,2], [2,9], [3,7] ]

for item in a:
    item[1] += 3

答案 1 :(得分:1)

您可以将extended iterable unpackinglist comprehension一起使用,以便仅更新第二个元素:

l = [ [1,2], [2,9], [3,7] ]
[[a, b + 3, *c] for a,b,*c in l]
[[1, 5], [2, 12], [3, 10]]

更新每个子列表的第二个元素,无论其长度如何:

l = [ [1,2,5,10], [2,9,7,2], [3,7,1,5] ]
[[a, b + 3, *c] for a,b,*c in l]
[[1, 5, 5, 10], [2, 12, 7, 2], [3, 10, 1, 5]]

注意:假设每个子列表至少包含2个元素

答案 2 :(得分:0)

一个简单的列表理解就足够了:

a_2= [[each[0],each[1]+3] for each in a]

打印a_2会导致:

[[1, 5], [2, 12], [3, 10]]