2017-11-21 8 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 

それをいただければ幸いですpython.Anyのヘルプにかなり新しいです私のforループはcorrectly.Iに動作していないようです。

+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)] 
関連する問題