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

如何获取Python字典中单词计数数值以计算文本单词平均使用率?

问题解决方法

你遇到的TypeError: 'int' object is not iterable错误,是因为尝试直接迭代单个整数,而非字典的数值集合。要实现需求,只需正确获取字典中的计数数值,再完成累加和计算即可。

具体实现步骤

1. 获取字典的所有计数数值

Python字典的values()方法会返回所有值的可迭代集合,针对你的word_count字典,word_count.values()会得到dict_values([2, 1, 1]),这是可正常迭代的对象。

2. 计算总单词数与平均使用率

根据你的需求,分两种常见计算场景:

场景1:计算每个单词使用率的平均值(使用率=单单词计数/总单词数)

total_words = sum(word_count.values())
# 生成所有单词的使用率列表,再求平均值
usage_rates = [count / total_words for count in word_count.values()]
average_usage = sum(usage_rates) / len(usage_rates)
print(f"平均使用率:{average_usage}")

场景2:计算平均每个单词的出现次数(总单词数/不同单词数量)

total_words = sum(word_count.values())
unique_word_num = len(word_count)
average_count = total_words / unique_word_num
print(f"平均每个单词出现次数:{average_count}")

3. 整合到原代码中

把计算逻辑放在文件读取完成后,示例如下:

word_count = {}

# 替换为你的实际文件名,比如"sample.txt"
file = "your_file.txt"

with open(file, "r") as fi:
    for line in fi:
        words = line.split()  

        for word in words:
            word = word.lower()

            if word not in word_count: 
                word_count[word] = 0 

            word_count[word] += 1

# 新增计算逻辑
total_words = sum(word_count.values())
unique_words = len(word_count)
average_occurrence = total_words / unique_words

print("单词计数结果:", word_count)
print(f"总单词数:{total_words}")
print(f"不同单词数量:{unique_words}")
print(f"平均每个单词出现次数:{average_occurrence}")

错误原因说明

你之前的错误大概率是误操作了单个整数(比如直接迭代word_count['thou']这类单个数值),或是没通过values()方法获取完整的数值集合。只要调用word_count.values()拿到所有计数的可迭代集合,就能正常完成累加和计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 00:31:05