2017-11-21 2 views
0

목록의 모든 구성원의 순열을 인쇄하려고하지만 스크립트에서 목록의 마지막 구성원 즉 'DMNCT'의 순열 만 인쇄하고 있습니다.목록에있는 모든 문자열의 순열 인쇄

from itertools import permutations 
element_all=['EESE', 'TTDT', 'SAIFE', 'DMNCT'] 
i=0 
for i in range (len(element_all)): 
    perms = [''.join(p) for p in permutations(element_all[i])] 
print perms 

내 for 루프가 올바르게 작동하지 않는 것 같습니다. 저는 python.Any 도움말에 상당히 익숙합니다.

+3

은'for' 루프의 각 반복에서 한 번에 목록을 정의, 당신은'perms'의 이전 값을 덮어하고 있습니다. 어딘가에 저장해야합니다 (목록에 추가 하시겠습니까?). – glibdud

답변

2

각 루프가 perms으로 바뀌므로이 문제가 발생합니다. 루프 밖에서 목록을 정의한 다음 루프 내에 extend을 정의해야합니다.

from itertools import permutations 
element_all=['EESE', 'TTDT', 'SAIFE', 'DMNCT'] 
perms = [] 
for i in element_all: 
    perms.extend([''.join(p) for p in permutations(i)]) 
print perms 

아니면 이해

perms = [''.join(p) for i in element_all for p in permutations(i)] 
관련 문제