我试图将排名中的每个元素与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]
已尝试了几次但没有运气,有什么建议吗?
答案 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
的效率低于使用内置*
运算符。