2017-10-04 16 views
0
from collections import Counter 
import re 
def find_anagrams(a): 
    A=set((a)) 
    B=str(A) 
    C=sorted((A)) 
    D=range(0,len(C)) 


    for i in D: 

     if Counter(C[i]) == Counter(C[i+1]): 
      print((C[i]),C[i+1]) 
      return 'These are anagrams' 

アナグラムをチェックするコードを作成しようとしていますが、最初の正しい一致が得られた後にイテレータループを作成する方法がわかりません。私はcontinueを使ってみましたが、うまくいかなかったようです。私はこれが簡単な修正だと思っていますが、私は過去1時間それを研究していて、それを理解できないようです。コードを繰り返し実行する方法

答えて

1

私は右のそれを理解し、あなたの関数がパラメータとして文字列のリストを取る場合、あなたはこの機能により、アナグラムを見つけることができます。

from collections import Counter 


def find_anagrams(words): 
    for i in range(len(words)): 
     for j in range(i + 1, len(words)): 
      if (Counter(words[i]) == Counter(words[j]) and 
       words[i] != words[j]): 
       print('Anagrams:', words[i], words[j]) 

それは除いて、リスト内の他のすべての単語とすべての単語をチェックします同じもの。

これは、これらのパラメータを使用して、次の出力に含まを生成します:

words = ['aab', 'baa', 'abc', 'cba', 'abcd', 'abbd', 'aba'] 
find_anagrams(words) 
>>> Anagrams: aab baa 
>>> Anagrams: aab aba 
>>> Anagrams: baa aba 
>>> Anagrams: abc cba