📜  Python – 字典列表中的值频率(1)

📅  最后修改于: 2023-12-03 15:04:12.197000             🧑  作者: Mango

Python – 字典列表中的值频率

在Python中,我们可以使用字典列表来保存一些键值对数据。有时需要统计每个键对应的值出现的频率。本文将介绍如何通过Python来实现。

使用collections.Counter

collections 库提供了 Counter 类来支持计数器功能。

from collections import Counter

data = [
    {'name': 'Tom', 'age': 18},
    {'name': 'Jerry', 'age': 21},
    {'name': 'Mike', 'age': 18},
    {'name': 'Jack', 'age': 21},
    {'name': 'David', 'age': 18},
]

ages = [i['age'] for i in data]
cnt = Counter(ages)
print(cnt)

输出结果为:

Counter({18: 3, 21: 2})

以上代码中,我们先将列表中每个元素的 age 属性提取出来,然后使用 Counter 类来统计每个年龄出现的次数。最后输出结果为一个字典,其中键是年龄,值是出现的次数。

自己实现计数器

如果不想使用 collections 库,我们可以自己实现计数器。

data = [
    {'name': 'Tom', 'age': 18},
    {'name': 'Jerry', 'age': 21},
    {'name': 'Mike', 'age': 18},
    {'name': 'Jack', 'age': 21},
    {'name': 'David', 'age': 18},
]

ages = [i['age'] for i in data]
cnt = {}
for age in ages:
    if age in cnt:
        cnt[age] += 1
    else:
        cnt[age] = 1
print(cnt)

输出结果同上。

总结

本文介绍了使用 collections.Counter 和自己实现计数器两种方式来统计字典列表中键对应的值出现的频率。