2017-12-19 18 views
0

長さの異なる他のリストからなるリスト(d)があるとします。私たちは結果のような新しいリストを作成したいと思います。しかし明らかにこのケースではすべてが明確で、a、b、cがあるので入れ子になったループを作成できます。この結果にPythonでネストされたforループをオンザフライで生成する方法

a = [1, 2] 
b = [10, 20] 
c = [100, 200, 300] 

d = [a, b, c] 

ret = [] 
for a1 in a: 
    for b1 in b: 
     for c1 in c: 
      ret.append([a1, b1, c1]) 

print ret 

[[1, 10, 100], [1, 10, 200], [1, 10, 300], [1, 20, 100], [1, 20, 200], [1, 20, 300], [2, 10, 100], [2, 10, 200], [2, 10, 300], [2, 20, 100], [2, 20, 200], [2, 20, 300]] 

我々は唯一のリストの未知数とdをしている場合はどうなる怒鳴るような要素の未知数があるのですか?何をしたい

d = [[1, 2, 3], [10], [100, 200, 300, 400]] 
+1

あなたは 'itertools'をチェックアウトしたことがありますか? – jhpratt

+0

itertoolsは行く方法です – SuperStew

+1

はい、 'itertools.product' –

答えて

0

itertools.productです:

import itertools 
a = [1, 2] 
b = [10, 20] 
c = [100, 200, 300] 
d = [a, b, c] 
ret = list(itertools.product(a, b, c)) # Or list(itertools.product(*d)) 
+0

恐ろしいです!ありがとうHai Vu – Ehsan

関連する問題