如何用Python从.txt词典中找出Spelling Bee指定字母的有效单词?
修正纽约时报Spelling Bee游戏答案查找工具的代码问题
你的代码当前问题出在判断逻辑上:{middle_letter, l1, l2, l3, l4, l5, l6} <= set(w) 是检查给定字母集合是单词字母集合的子集,这意味着单词可以包含额外的字母,完全不符合“仅由这7个字母组成”的规则。
修正后的代码
# 收集输入的7个字母 middle_letter = input("输入中间字母: ") other_letters = [input(f"输入第{i}个字母: ") for i in range(1,7)] allowed_letters = set([middle_letter] + other_letters) with open('words.txt') as f: valid_words = [] for line in f: word = line.strip().lower() # 统一转小写,避免大小写匹配问题 # 同时满足三个核心规则 if len(word) >= 4 and middle_letter.lower() in word and set(word).issubset(allowed_letters): valid_words.append(word) print(valid_words)
关键修正说明
- 将允许使用的7个字母存入
allowed_letters集合,简化后续判断逻辑 - 新增单词长度≥4的判断条件
- 用
set(word).issubset(allowed_letters)替代原条件,确保单词的所有字母都来自允许的7个字母,无额外字符 - 统一转小写处理,避免词典中单词大小写不一致导致的匹配遗漏
内容的提问来源于stack exchange,提问作者simon nawara
相关产品推荐
相关产品推荐

