2017-11-28 15 views
-1

목록에서 가능한 모든 문자 조합을 만들고 싶습니다.파이썬에서 알려지지 않은 양의 목록에서 가능한 모든 문자 조합을 만듭니다.

char1 = ['a','b','c'] 
char2 = ['1','2'] 

가능한 문자열이 될 것이다 : 첫번째 문자가 I 다음리스트가있는 경우 등

첫 번째 어레이는 제 2 어레이로부터의 두 번째 문자에서 있어야 A1, A2, b1, b2, c1 및 c2. 알 수없는 크기의 알 수없는 양의 목록에서 모든 조합을 만드는 코드를 만드는 방법은 무엇입니까?

문제는 내가 얼마나 많은 목록이 있는지 모르겠다는 것입니다. 목록의 양은 코드가 실행되는 동안 사용자가 결정합니다.

+1

[두 목록 간의 조합?] (https://stackoverflow.com/questions/12935194/combinations-between-two-lists) – Arman

+0

이 목록은 알 수없는 양의 목록에 대한 것입니다. 두리스트 곱셈 코드가 여기서는 유용하지 않습니다. – user31751

답변

0

위에서 언급 한 바와 같이, 당신은 itertools.product()

을 사용할 수 있습니다 그리고 당신은 목록의 수를 알 수 없기 때문에 당신은 인수로리스트의 목록을 전달할 수 있습니다

import itertools 

lists = [ 
    ['a','b','c'], 
    ['1','2'] 
] 

["".join(x) for x in itertools.product(*lists)] 

결과 :

['a1', 'a2', 'b1', 'b2', 'c1', 'c2'] 
0

그게 바로 itertools.product()의 작업입니다! https://docs.python.org/2/library/itertools.html#itertools.product

>>> ["%s%s" % (c1,c2) for (c1,c2) in itertools.product(char1, char2)] 
['a1', 'a2', 'b1', 'b2', 'c1', 'c2'] 

을 그리고 그래, 그것은 알 수없는 크기의 목록의 변수 수를 확장 : 워드 프로세서를 확인하십시오.

+0

그러나 알 수없는 양의 목록에서 작동하도록 수정하는 방법은 무엇입니까? – user31751

+0

https://stackoverflow.com/questions/10148834/python-itertools-product-with-variable-number-of-arguements – Pavel