假设我有两个列表:
a=[1,2,3,4,5]
b=[5,4,3,2,1]
我想创建第三个,它将是两个给定的线性和:
c[i]==a[i]+b[i]
c==[6,6,6,6,6]
是否可以使用“for”构造函数?喜欢:
c = [aa+bb for aa in a for bb in b]
(这显然不是我想要的)
假设我有两个列表:
a=[1,2,3,4,5]
b=[5,4,3,2,1]
我想创建第三个,它将是两个给定的线性和:
c[i]==a[i]+b[i]
c==[6,6,6,6,6]
是否可以使用“for”构造函数?喜欢:
c = [aa+bb for aa in a for bb in b]
(这显然不是我想要的)
使用zip()
:
>>> a = [1,2,3,4,5]
>>> b = [5,4,3,2,1]
>>> c = [x+y for x,y in zip(a, b)]
>>> c
[6, 6, 6, 6, 6]
或者:
>>> c = [a[i] + b[i] for i in range(len(a))]
>>> c
[6, 6, 6, 6, 6]
c = [aa+bb for aa in a for bb in b]
是这样的:
for aa in a:
for bb in b:
aa+bb
这意味着,选择1
froma
然后循环遍历b
while 将它们添加到的所有元素1
,然后选择2
froma
然后再次循环遍历b
while 将它们添加到的所有值2
,这就是您没有得到预期输出的原因。
a=[1,2,3,4,5]
b=[5,4,3,2,1]
[x+y for x,y in zip(a,b)]
[6, 6, 6, 6, 6]
OR
map(lambda x,y:x+y, a, b)
[6, 6, 6, 6, 6]
[ay + be for ay, be in zip(a, b)]
sums = [a[i]+b[i] for i in range(len(a))]
我不知道你想做什么,但你可以很容易地用 numpy 做你所要求的。我只是不确定您是否真的想在代码中添加额外的依赖项。