2017-08-04 18 views
1

2つの異なるリストの各要素をどのように掛けることができますか?例えばpythonリストに各値を掛ける

list_a = [1,2,3,4,5] list_b = [10,20,30,40,50]

私は結果があなたが私を助けることができる場合、私は本当に感謝10, 40, 90, 160, 250

になるように、それ1X10 2X20 3X30 4X40 5X50

ようにしたいです。

+2

可能な複製(HTTPS:/ /stackoverflow.com/questions/35166633/how-do-i-multiply-each-element-in-a-list-by-a-number) –

+0

これに最も適した方法は「zip」です。[zip](https:/// d ocs.python.org/3.3/library/functions.html#zip) –

答えて

0
a = [1,2,3,4,5] 
b = [10,20,30,40,50] 
print [a[i]*b[i] for i in range(len(b))] 

あなた

+0

あなたは製品を返すのを忘れました! –

+0

私は間違って質問を理解するようになりました。私は出力を変更します –

+0

あなたのソリューションで 'str'が使われた理由@ adchoi_97' string'ではなく 'integer'項目をリストに追加します。 –

-1

に役立つこの意志クリーナーバージョンは次のようになります。

a,b = [1,2,3,4,5],[10,20,30,40,50] 
for i,j in zip(a,b): 
    print '%d x %d = '%(i,j),'%d units'% ((i*j)) 
+1

'map'の代わりに' zip'を使うべきです –

+0

どういう違いがありますか?つまり、コンピューティング時間を節約するのですか? –

+1

'map'は*マッピング操作*のためのもので、' zip'は圧縮のためのものです。あなたは 'zip'を使ってマッピングを行います。それは単に悪い形です。 –

3

あなたは以下のようにzip機能を使用することができます。

>>> list_a = [1,2,3,4,5] 
>>> list_b = [10,20,30,40,50] 
>>> [(x[0]*x[1]) for x in zip(list_a,list_b)] 
[10, 40, 90, 160, 250] 
+2

'' '' 'a、b(zip(list_a、list_b)のbのためのa * b ')はちょっと丁寧です –

+0

または' list(map(operator.mul、list_a、list_b)) ' –

0
a = [1,2,3,4,5] 
b = [i*i*10 for i in a] 
1

zip()使用:

list_a = [1,2,3,4,5] 
list_b = [10,20,30,40,50] 
final = [k*v for k, v in zip(list_a, list_b)] 
print final 

出力:

[10, 40, 90, 160, 250] 
[私は数でリストの各要素を乗算するにはどうすればよい?]の
+0

Python 3の場合、 k、v'を括弧でくくって、 '(k、v)'とします。最後の行は 'final = [zip(list_a、list_b)]の'(k、v)の '' k * v'です。 – Zcode

+1

いいえ、かっこなしでもうまくいくはずです:-) –

+1

申し訳ありませんが、あなたは正しいです。 Python 3のドキュメントでは、括弧が必要であると言われていましたが、それは理解のリストの唯一の戻り部分です。 – Zcode

関連する問題