2017-10-04 132 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

如果我的理解是正確的,你的函數將作爲參數字符串列表,您可以通過此功能查找字謎:

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