Python:将每个列表元素与另一个列表的特定元素相乘的列表理解方法

时间:2016-10-25 13:42:36

标签: python list list-comprehension

我试图将排名中的每个元素与no_of_photos中的“对应”相乘,如下所示:

ranking = [12,4,5,1]
no_of_photos = [25,22,11,9]

i=0

for x in ranking:
    print x * no_of_photos[i]
    i+=1

我怎么能使用列表理解和增量i ex:

来做到这一点
a  = [x * no_of_photos[i++] for x in ranking]  

已尝试了几次但没有运气,有什么建议吗?

2 个答案:

答案 0 :(得分:3)

使用zip

a = [r*n for r,n in zip(ranking, no_of_photos)]

答案 1 :(得分:2)

列表理解的替代方案。

import operator

a = map(operator.mul, ranking, no_of_photos)

这基本上将压缩与迭代相结合,但调用operator.mul的效率低于使用内置*运算符。