使用列表推导式遍历两个变量,同时将它们的循环位置同时增加,这种情况是否可能?请见下面的示例:
a = [1,2,3,4,5]
b = [6,7,8,9,10]
c = [i+j for i in a for j in b] # This works but the output is not what it would be expected.
期望输出为c = [7, 9, 11, 13, 15]
(来自a的第n个元素加上来自b的第n个元素)
谢谢。
使用列表推导式遍历两个变量,同时将它们的循环位置同时增加,这种情况是否可能?请见下面的示例:
a = [1,2,3,4,5]
b = [6,7,8,9,10]
c = [i+j for i in a for j in b] # This works but the output is not what it would be expected.
期望输出为c = [7, 9, 11, 13, 15]
(来自a的第n个元素加上来自b的第n个元素)
谢谢。
a = [1,2,3,4,5]
b = [6,7,8,9,10]
c = map(sum, zip(a, b))
print c
#Output
[7, 9, 11, 13, 15]
<map object at 0x0000019B59329DA0>
虽然map
更快,但以下方法更简单...c = [aa + bb for aa, bb in zip(a,b)]
- Diomedea
c = [i+j for i,j in zip(a,b)]
,它的意思是将列表a和列表b对应位置的元素相加并存储在一个新的列表c中。 - Alex