我有两个大小相同的列表,我想在两个列表的相同索引位置乘以两个数据,得到新列表的总和。
>>> left = range(10)
>>> right = range(10, 20)
>>> sum([left[i]*right[i] for i in xrange(len(left))]) # output 735
我想知道是否有一种更简单的方法可以在不使用非标准python库的情况下进行此类操作。
答案 0 :(得分:4)
这个怎么样
right = range(10, 20)
left = range(10)
sum(x*y for x, y in zip(left, right))
735
或者那些功能倾向的人; - )
from operator import mul
from itertools import starmap, izip
sum(starmap(mul, izip(left, right)))
735