我有三個名單,我想乘以它們出現在列表中的順序的對象,然後在新的列表返回結果幾個列表中的每個對象:如何將多個在Python
a = [1,5,4,3]
b = [20, 44, 40, 100]
c = [222, 432, 670, 190]
的新的列表應該有這些計算的結果:
new_list = [(1*20*222),(5*44*432), (4*40*670), (3*100*190)]
我有三個名單,我想乘以它們出現在列表中的順序的對象,然後在新的列表返回結果幾個列表中的每個對象:如何將多個在Python
a = [1,5,4,3]
b = [20, 44, 40, 100]
c = [222, 432, 670, 190]
的新的列表應該有這些計算的結果:
new_list = [(1*20*222),(5*44*432), (4*40*670), (3*100*190)]
new_list = [x * y * z for x, y, z in zip(a, b, c)]
另外,特別是usefuly如果你有超過三個列表:
import operator
new_list = [reduce(operator.mul, lst, 1) for lst in zip(a, b, c)]
[x * y * z for x, y, z in zip(a, b, c)]
對「壓縮」列表進行迭代並乘以它們的組件。
In [1]: a = [1,5,4,3]
In [2]: b = [20, 44, 40, 100]
In [3]: c = [222, 432, 670, 190]
In [5]: [(x*y*z) for x,y,z in zip(a,b,c)]
Out[5]: [4440, 95040, 107200, 57000]
這是我喜歡蟒蛇,沒有[TMTOWTDI(http://en.wikipedia.org/wiki/There's_more_than_one_way_to_do_it),只有一個或也許2解決問題的正確方法! – 2013-02-25 22:23:45