代码之家  ›  专栏  ›  技术社区  ›  Kadify

如何通过代码继续迭代

  •  0
  • Kadify  · 技术社区  · 7 年前
    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 回复  |  直到 6 年前
        1
  •  1
  •   matusf    7 年前

    如果我理解正确,并且你的函数将字符串列表作为参数,你可以通过这个函数找到字谜:

    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