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

2024-09-26 18:18:36 发布

您现在位置:Python中文网/ 问答频道 /正文

像umbellar=umbrella都是相等的词。在

Input=[“伞形伞”,“果阿”,“雨伞”,“阿哥”,“艾利”,“阿莱姆”,“艾尔”,“gnu”,“埃拉”,“埃玛”,“游戏”,“莱姆”,“艾美”,“年”,“饭”,“亚尔”,“枪”,“阿尔梅”,“昂”,“男”,“跛脚”,“梅拉”,“法师”]

所以输出应该是:

输出=[ [“伞形”,“伞形”], [“阿哥”,“果阿”], [“艾瑞”,“艾尔”,“艾拉”,“亚尔”,“年”], [“alem”,“alme”,“amel”,“lame”,“leam”,“male”,“meal”,“mela”], [“gnu”,“gun”,“ung”] [“egma”,“game”,“mage”], ]在


Tags: gnu游戏inputmale跛脚伞形umbrella法师
3条回答

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

示例:

^{pr2}$

他们不是平等的词,他们是字谜。在

通过按字符排序可以找到Anagrams:

sorted('umbellar') == sorted('umbrella')

collections.defaultdict很方便:

from collections import defaultdict

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

D = defaultdict(list)
for i in input:
    key = ''.join(sorted(input))
    D[key].append(i)

output = D.values()

输出是[['umbellar', 'umbrella'], ['goa', 'ago'], ['gnu', 'gun', 'ung'], ['alem', 'leam', 'amel', 'meal', 'alme', 'male', 'lame', 'mela'], ['egma', 'game', 'mage'], ['aery', 'ayre', 'eyra', 'year', 'yare']]

相关问题 更多 >

    热门问题