压缩它们,然后对每个元组求和。
[sum(x) for x in zip(a,b)]
编辑: 这是一个更好的,尽管更复杂的版本,可以加权。
from itertools import starmap, islice, izipa = [1, 2, 3]b = [3, 4, 5]w = [0.5, 1.5] # weights => a*0.5 + b*1.5products = [m for m in starmap(lambda i,j:i*j, [y for x in zip(a,b) for y in zip(x,w)])]sums = [sum(x) for x in izip(*[islice(products, i, None, 2) for i in range(2)])]print sums # should be [5.0, 7.0, 9.0]



