找到所有字符与python中的其他单词匹配的单词

key*_*yur 3 python

像umbellar =伞都是平等的话.

输入= ["umbellar","goa","umbrella","before","aery","alem","ayre","gnu","eyra","egma","game","leam" ,"amel","year","meal","yare","gun","alme","ung","male","lame","mela","mage"]

所以输出应该是:

output = [["umbellar","umbrella"],["before","goa"],["aery","ayre","eyra","yare","year"],["alem", "alme","amel","lame","leam","male","meal","mela"],["gnu","gun","ung"] ["egma","game" ,"法师"],]

sha*_*ang 7


from itertools import groupby

def group_words(word_list):
    sorted_words = sorted(word_list, key=sorted)
    grouped_words = groupby(sorted_words, sorted)
    for key, words in grouped_words:
        group = list(words)
        if len(group) > 1:
            yield group
Run Code Online (Sandbox Code Playgroud)

例:

>>> group_words(["umbellar","goa","umbrella","ago","aery","alem","ayre","gnu","eyra","egma","game","leam","amel","year","meal","yare","gun","alme","ung","male","lame","mela","mage" ])
<generator object group_words at 0x0297B5F8>
>>> list(_)
[['umbellar', 'umbrella'], ['egma', 'game', 'mage'], ['alem', 'leam', 'amel', 'meal', 'alme', 'male', 'lame', 'mela'], ['aery', 'ayre', 'eyra', 'year', 'yare'], ['goa', 'ago'], ['gnu', 'gun', 'ung']]
Run Code Online (Sandbox Code Playgroud)