我正在尝试使用for循环,以便基于第二个列表上的值来修改列表中的值。因此,尽管“ zip”功能会派上用场,但是我没有得到预期的结果。在此处查看示例:
list_a = [0,0,0,0]
list_b = [1,2,3,4]
for a, b in zip(list_a, list_b):
a = b*2
我虽然修改了list_a,但没有修改。我的理解是,在循环内,“ a”首先等于list_a[0]
,然后等于list_a[1]
,依此类推,换句话说就是列表的视图。
我实际上有2个问题:
a)如果循环中的“ a”和“ b”不是两个列表的视图,那么它们是什么?
b)是否有实现该循环的pythonic方法(即与i in range(len(list_a))
循环不同?
答案 0 :(得分:2)
您可以尝试以下操作:
list_a = [0,0,0,0]
list_b = [1,2,3,4]
for i, b in enumerate(list_b):
list_a[i] = b*2
您可以通过以下方式获得相同的结果:
[b*2 for b in list_b]