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

2024-04-23 15:25:09 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有:

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] ]

Tags: in编辑列表forlennumsecondswhile
3条回答

不必先保存seconds然后修改,您可以一次完成这一切:

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

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

您可以使用带有^{}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个元素

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

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

打印\u 2将导致:

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

相关问题 更多 >