将两个相等大小的列表相乘并求结果(点积)

时间:2013-12-21 03:00:11

标签: python

我有两个大小相同的列表,我想在两个列表的相同索引位置乘以两个数据,得到新列表的总和。

>>> left = range(10)  
>>> right = range(10, 20)  
>>> sum([left[i]*right[i] for i in xrange(len(left))]) # output 735

我想知道是否有一种更简单的方法可以在不使用非标准python库的情况下进行此类操作。

1 个答案:

答案 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