Python新手求助:基于单词后缀构建符合条件的字典
解决你的后缀映射字典需求
嘿,你好呀!我看你当前的代码是在统计每个单词的出现次数,但这和你想要的「按3字母后缀分组单词」的需求不匹配~ 咱们来调整代码实现你的目标:
步骤说明
- 首先,我们需要用
defaultdict(list)来创建一个字典,这样每个后缀键对应的是单词列表,而不是计数。 - 遍历你的
stimuli_words列表,给每个单词提取最后3个字符作为后缀,把单词添加到对应后缀的列表中。 - 最后过滤掉那些单词数量≤40的后缀,得到你需要的最终字典。
完整代码示例
from collections import defaultdict # 你的无重复全小写单词列表 stimuli_words = ["going", "hiring", "driving", ...] # 替换为你的实际列表 # 第一步:构建后缀到单词列表的映射 suffix_to_words = defaultdict(list) for word in stimuli_words: # 仅处理长度≥3的单词,确保能提取3字母后缀 if len(word) >= 3: suffix = word[-3:] suffix_to_words[suffix].append(word) # 第二步:过滤出单词数量超过40的后缀 filtered_suffix_dict = { suffix: words for suffix, words in suffix_to_words.items() if len(words) > 40 } # 查看最终结果 print(filtered_suffix_dict)
代码细节解释
defaultdict(list):自动为每个新后缀创建空列表,不用手动判断键是否存在,写起来更简洁。word[-3:]:Python字符串切片语法,直接取最后3个字符作为后缀,是处理这类需求的常用技巧。- 字典推导式:快速筛选出符合条件的条目,比传统循环遍历的写法更高效易读。
如果你的列表里有长度小于3的单词,可以根据需求调整——比如跳过这类单词,或者把短单词的完整字符串作为后缀,修改循环里的判断逻辑就行啦。
内容的提问来源于stack exchange,提问作者user9172872
相关产品推荐
相关产品推荐

