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}
根据需求选择合适的方法,灵活应对不同场景的统计任务。