使用zip和赋值的Python循环

时间:2019-04-07 18:09:42

标签: python

我正在尝试使用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))循环不同?

1 个答案:

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