有没有一种简单的方法可以添加两个大小相同的list
s 的成员(tuple
或任何最适合的数据类型)?
例如a
,我有b
两个元素:
a = (0, 10)
b = (0, -10)
我想添加它们并得到结果:
result = (0, 0)
不是(0, 10, 0, -10)
你可以在 Python 中用一行代码做到这一点:
map(sum, zip(A, B))
例子:
>>> B = [1, 2, 3, 4]
>>> C = [1, 2, 4, 8]
>>> map(sum, zip(B, C))
[2, 4, 7, 12]
三个选项:
>>> [a+b for (a,b) in zip(A,B)]
>>> map(int.__add__, A, B)
>>> map(sum, zip(A,B))
如果您想使用数字列表进行操作,请使用 numpy
>>> a = [1,2]
>>> b = [1,2]
>>> import numpy as np
>>> np.add(a,b)
array([2, 4])
>>>
是的,就这样做
map(sum,zip(A,B)
或者,(实际上显然更快)
u=map(lambda a,b:a+b,A,B)
时序示例:
A=range(3000)
B=range(3000)
for i in range(15000):
u=map(lambda a,b:a+b,A,B) # takes about 7.2 seconds
# u=map(sum,zip(A,B)) # takes about 11 seconds
# u=map(int.__add__,A,B) # (Edward Loper) actually also consistently ~0.5 sec slower than lambda
List ANSWER = ()
for index in range(0, len(A))
ANSWER.append(A[index]+B[index])