让我说:
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] ]
答案 0 :(得分:2)
您可以一次完成所有操作,而不是先保存seconds
然后再进行修改,
a = [ [1,2], [2,9], [3,7] ]
for item in a:
item[1] += 3
答案 1 :(得分:1)
您可以将extended iterable unpacking
与list 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]]