0

3 つのリストがあり、それらのオブジェクトをリストに表示される順序で乗算し、結果を新しいリストに返したいと考えています。

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)]
4

3 に答える 3

7
new_list = [x * y * z for x, y, z in zip(a, b, c)]

または、3 つ以上のリストがある場合に特に便利です。

import operator
new_list = [reduce(operator.mul, lst, 1) for lst in zip(a, b, c)]
于 2013-02-25T22:11:55.407 に答える
3
[x * y * z for x, y, z in zip(a, b, c)]

「圧縮された」リストを反復処理し、それらのコンポーネントを乗算します。

于 2013-02-25T22:12:09.540 に答える
3
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]
于 2013-02-25T22:12:26.830 に答える