2014-12-11 4 views
0

입력 : pos_3크기의 가능한 모든 문자열 3. 파이썬을 생성하는 제품을 itertools

나 '에서 한 POS_1에서 항목 POS_2에서 하나, 하나를 사용하여 가능한 모든 세 쌍둥이를 찾으려고

pos_1= 'AVNMHDRW' 
pos_2= 'KNTHDYBW' 
pos_3= 'KVNGSDRB' 

itertools.product (*)를 사용하는 방법을 알아 내려고했지만 약간 혼란 스럽네요.

궁극적으로 나는 pos_1에서 하나를 취하여 모든 다른 가능성 목록 (또는 생성기 객체)을 만들고 싶습니다. pos_2부터 다음 pos_3에서 하나

출력 예 :

'AKK','ANV','WWB' 

POS_1 위치 하나 약자 등 POS_2 및 pos_3 대.

+0

확실하지 왜 제품이 필요하지만, 당신은 단순히 발전기를 만들 수'g = ([V1, V2, V3] pos_3에서 v3의 POS_2에서 v2의 POS_1에서 V1에 대한)' – Marcin

답변

1

간단한 :이 이상 반복 할 수

itertools.product(pos_1, pos_2, pos_3) 

; 목록을 원하면 list으로 전달하십시오.

정확히 무엇이 문제입니까?

편집 : 이렇게하면 각 출처에서 항목의 튜플이 생성됩니다. 당신이 문자열에 다시 가입하려는 경우, 당신은 당신이 반복 수동 때 작업을 수행 할 수 있습니다

[a + b + c for a, b, c in itertools.product(pos_1, pos_2, pos_3)] 
+0

재미를 위해서,'' map (''. join, itertools.product (pos_1, pos_2, pos_3))' –

0

당신은 할 수 있습니다 :

for a, b, c in itertools.product(pos_1, pos_2, pos_3): 
    do_something_with(a + b + c) 

또는 목록을 작성, 당신은 지능형리스트를 사용할 수 있습니다 발전기 사용하여 발전기 표현 :

g = (v1+v2+v3 for v1 in pos_1 for v2 in pos_2 for v3 in pos_3)