使用itertools permutations结合英文词集时循环出现匹配异常
问题原因
你在循环内部错误覆盖了原始字符串变量word——第一次循环执行word=''.join(item)时,原本存储"dseeenl"的word被替换成了生成的排列单词(比如最后一个是needs)。后续循环(i=6、7)调用permutations(word, i)时,使用的是被覆盖后的短单词,根本无法生成对应长度的排列,自然找不到匹配的有效单词。
修复后的代码
from itertools import permutations from english_words import get_english_words_set original_word = "dseeenl" web2lowerset = get_english_words_set(['web2'], lower=True) for i in range(5, len(original_word)+1): print(i) mywords = permutations(original_word, i) for item in set(mywords): current_word = ''.join(item) if current_word in web2lowerset: print(current_word)
输出差异翻译
| 实际输出 | 预期输出 |
|---|---|
| 5 | 5 |
| neeld | neeld |
| dense | dense |
| leden | leden |
| neele | neele |
| neese | neese |
| needs | needs |
| 6 | 6 |
| lendee | |
| needle | |
| selene | |
| lensed | |
| sendee | |
| 7 | 7 |
| needles |
内容的提问来源于stack exchange,提问作者tetris programming
相关产品推荐
相关产品推荐

