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

Python:统计字典中元素出现次数并生成新字典的实现疑问

统计字典中单词出现次数的实现方法

嘿,我来帮你搞定这个统计单词次数的问题!你已经成功把原字典里的所有单词扁平化到列表C里了,接下来生成目标字典其实有好几种简洁的方式,我给你逐一说明:

方法一:用Python标准库的collections.Counter(最推荐)

这是最省心的方式,Counter就是专门用来统计可迭代对象中元素出现次数的工具,直接一步到位:

首先导入模块,然后传入你的列表C就行,最后可以直接转成字典(其实Counter本身就是字典的子类,大部分场景下直接用也没问题):

from collections import Counter

# 你的扁平化列表C
C = ['Yellow', 'Blue', 'Red', 'White', 'Purple', 'Purple', 'Red']

# 统计次数并生成目标字典
word_count = dict(Counter(C))
print(word_count)

运行结果就是你想要的目标字典:

{'Yellow': 1, 'Blue': 1, 'Red': 2, 'White': 1, 'Purple': 2}

方法二:手动循环统计(适合理解原理)

如果你想自己实现统计逻辑,也很简单,初始化一个空字典,遍历列表里的每个单词,根据是否存在来更新计数:

C = ['Yellow', 'Blue', 'Red', 'White', 'Purple', 'Purple', 'Red']
word_count = {}

for word in C:
    if word in word_count:
        word_count[word] += 1
    else:
        word_count[word] = 1

print(word_count)

运行结果和上面完全一样,这种方式能让你清楚看到计数的过程。

额外优化:简化扁平化步骤

其实你之前把原字典的值存到B再转成C的步骤可以简化,不用单独创建B列表,直接用列表推导式一步生成扁平化列表:

A = {'#1': ['Yellow', 'Blue', 'Red'], '#2': ['White', 'Purple', 'Purple', 'Red']}
C = [item for sublist in A.values() for item in sublist]

这样代码更简洁,效率也更高~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:22:53