如何继续迭代代码

时间:2017-10-04 20:45:48

标签: python iterator anagram

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 个答案:

答案 0 :(得分: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