2017-10-04 2 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' 

저는 anagram을 검사하는 코드를 만들려고하지만 첫 번째 정확한 일치를 얻은 후에 반복기 루프를 만드는 방법을 알 수 없습니다. 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]) 

같은 것들.

은 이러한 매개 변수와 함께 다음 OUPUT를 생성합니다 :

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