You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从词频统计字典中获取最长单词、长度及最常见单词?

问题解决:字典中最长单词与高频单词提取

给定文本:

['To be or not to be,', 'that is the question.']

已处理为词频统计字典hamlet_dict,需实现两个功能:

  1. 获取字典中最长单词及其长度
  2. 获取最常见单词及其出现次数

以下是针对现有代码问题的修正方案:

一、获取最长单词及长度

原问题分析

原代码仅计算出最长单词的长度,但未将对应单词存入longest列表,导致输出为空列表。

修正代码

length = 0
longest = []

for k in hamlet_dict.keys():
    current_len = len(k)
    if current_len > length:
        # 找到更长的单词,重置长度和列表
        length = current_len
        longest = [k]
    elif current_len == length:
        # 遇到长度相同的单词,加入列表
        longest.append(k)

# 格式化输出
print(f'There are {length} characters in the longest word. The word is {", ".join(longest)}.')

说明

遍历字典键时同步判断单词长度:若大于已记录的最长长度,则更新长度并重置列表;若等于最长长度,则将单词加入列表。用", ".join(longest)处理多最长单词的情况,输出更符合预期格式。

二、获取最常见单词及出现次数

原问题分析

原代码仅找到最高出现次数,但未遍历键值对匹配对应单词,导致common列表为空。

修正代码

common = []
count = 0

for word, freq in hamlet_dict.items():
    if freq > count:
        # 找到更高频次,更新次数并重置列表
        count = freq
        common = [word]
    elif freq == count:
        # 遇到相同频次的单词,加入列表
        common.append(word)

# 格式化输出
print(f'{", ".join(common)} is the most common word(s). It showed up {count} times.')

说明

直接遍历字典的键值对(items()方法),同时判断频次:若大于当前最高频次,则更新频次并重置列表;若等于最高频次,则将单词加入列表。用", ".join(common)处理多高频单词的场景,输出符合预期格式。

内容的提问来源于stack exchange,提问作者prina sikowitz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 22:35:14