2017-12-19 10 views
0

길이가 다른 다른 목록으로 구성된 목록 (d)이 있다고 상상해보십시오. 우리는 결과처럼 보이는 새로운 목록을 만들고 싶습니다. 그러나 분명히이 경우에는 모든 것이 명확합니다. 우리는 a, b, c를 가지고 있으므로 중첩 루프를 만들 수 있습니다. 이 결과파이썬에서 즉시 중첩 된 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 = [[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

굉장! 고마워요 하이 하이 – Ehsan

관련 문제