知妳网 知妳网-知妳所想,懂妳所需

知妳网

知妳网知你所想为你解忧最懂你的网站

python字典统计值出现次数

在Python中,可以使用字典来统计值的出现次数,具体方法取决于数据来源和需求。以下是几种常见场景的解决方案:

python字典统计值出现次数

1. 统计列表元素的出现次数

目标:统计列表 `[1, 2, 3, 1, 2, 1]` 中每个元素的出现次数,结果为 `{1: 3, 2: 2, 3: 1}`。

方法一:使用普通字典

python

lst = [1, 2, 3, 1, 2, 1]

counts = {}

for item in lst:

counts[item] = counts.get(item, 0) + 1

print(counts) 输出: {1: 3, 2: 2, 3: 1}

方法二:使用 `collections.defaultdict`

python

from collections import defaultdict

counts = defaultdict(int)

for item in lst:

counts[item] += 1

print(dict(counts)) 输出: {1: 3, 2: 2, 3: 1}

方法三:使用 `collections.Counter`

python

from collections import Counter

counts = Counter(lst)

print(counts) 输出: Counter({1: 3, 2: 2, 3: 1})

2. 统计字典中值的出现次数

目标:统计字典 `{'a': 1, 'b': 2, 'c': 2, 'd': 3}` 中值的出现次数,结果为 `{1: 1, 2: 2, 3: 1}`。

方法一:遍历字典的值

python

original_dict = {'a': 1, 'b': 2, 'c': 2, 'd': 3}

value_counts = {}

for value in original_dict.values:

value_counts[value] = value_counts.get(value, 0) + 1

print(value_counts) 输出: {1: 1, 2: 2, 3: 1}

方法二:使用 `collections.Counter`

python

from collections import Counter

value_counts = Counter(original_dict.values)

print(dict(value_counts)) 输出: {1: 1, 2: 2, 3: 1}

  • 普通字典:适合基础场景,无需导入库。
  • `defaultdict`:简化键的存在性判断,代码更简洁。
  • `Counter`:最简洁高效的方式,提供额外统计功能(如 `most_common`)。
  • 根据需求选择合适的方法,灵活应对不同场景的统计任务。