只是zip
生成对的列表,将它们相乘并提供给sum
:
>>> a = [1,2,3] >>> b = [4,5,6] >>> sum(x * y for x, y in zip(a, b)) 32
在上面zip
将返回包含两个列表中一个数字的元组的可迭代:
>>> list(zip(a, b)) [(1, 4), (2, 5), (3, 6)]
然后使用生成器表达式将数字相乘:
>>> list(x*y for x, y in list(zip(a, b))) [4, 10, 18]
最后sum
用于将它们汇总在一起以获得最终结果:
>>> sum(x*y for x, y in list(zip(a, b))) 32