2016-10-25 180 views
2

我想乘元件中的每一個與在no_of_photos它的「相對應的」排名的特定元素相乘,像這樣的列表解析的方法:的Python:在每個列表元素與另一個列表

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] 

嘗試了好幾種,但沒有運氣,有什麼建議?

回答

3

使用zip

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

到列表理解的替代品。

import operator 

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

這基本上結合了迭代荏苒,但調用operator.mul比使用效率較低內置*運營商。

相關問題