2017-12-22 5 views
1

を持つループで入れ子に置き換えます。Pythonは、私は次のことを達成するために、リストの内包表記を使用する方法を探しています理解

a = [1,2,3,4] 
b = [5,6,7,8] 
vals = [] 

for i in a: 
    for j in b: 
    vals.append(i*j) 

print(vals) 

私はリスト内包してこれを行う方法があります確信しているが、私は」どのように進行するかについては紛失している。

+0

ヴァルス= [私は、私のためにジッパーでjはjは*(その後、各ペアを掛けるために理解を使用することができますa、b)] – mamun

+0

重複しているかもしれませんが、上記の解決策ではありません。その解決策は私にリストのリストを与えます。私はリストのリストを持つことに興味がありません、私はすべての値のリストが欲しいです。私のコードを実行し、参照したコードを実行すると、その違いが表示されます。 – zklim

答えて

4

ピュアリスト内包:

[i*j for i in a for j in b] 

出力:

[5, 6, 7, 8, 10, 12, 14, 16, 15, 18, 21, 24, 20, 24, 28, 32] 
+1

ブーム。答えがあります。スコットに感謝します! – zklim

+1

私は何か(それは存在しなかった)が見えたので、その回答を削除しました。私はそれが今日私にとって遅くなっていると思う:)脳のテレマティクスのための+1! – progmatico

1

itertools 'productは、両方のリストの要素のすべての組み合わせを提供します。

​​
関連する問題