gpt4 book ai didi

python - 试图想出 python anagram 函数

转载 作者:太空宇宙 更新时间:2023-11-04 08:53:15 26 4
gpt4 key购买 nike

我想要做的是如果我有一个像这样的列表:

["lime", "mile", "liem", "tag", "gat", "goat", "math"]

我想编写一个函数来返回列表中具有变位词的单词,它看起来像:

["lime", "mile", "liem", "tag", "gat",]

到目前为止我有这段代码:

def anagramprinter(x):

output = []
for i in x:
for n in i:
if n in x[i]:

我无法通过这一部分,希望得到一些帮助,也希望得到详尽的解释。

任何人都可以告诉我一个不涉及导入的方法吗?谢谢

谢谢。

最佳答案

通过字符的 frozenset 识别单词的方法:

from collections import defaultdict

wordlist = ["lime", "mile", "liem", "tag", "gat", "goat", "math"]

worddict = defaultdict(list)
for word in wordlist:
worddict[frozenset(word)].append(word)

anagrams = [words for words in worddict.values() if len(words) > 1]
print(anagrams)

# [['lime', 'mile', 'liem'], ['tag', 'gat']]

输出还不是您想要的,但如果您愿意,可以很容易地展平该列表。


评论后

更新:

上面的解决方案不能很好地处理带有重复字符的单词。但这会(这次字典的键只是由排序字母组成的字符串):

for word in wordlist:
worddict[''.join(sorted(word))].append(word)

关于python - 试图想出 python anagram 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33023682/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com