计算python字典中每个键的出现次数

编程入门 行业动态 更新时间:2024-10-17 09:43:05
本文介绍了计算python字典中每个键的出现次数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个看起来像这样的python字典对象:

I have a python dictionary object that looks somewhat like this:

[{"house": 4, "sign": "Aquarius"}, {"house": 2, "sign": "Sagittarius"}, {"house": 8, "sign": "Gemini"}, {"house": 3, "sign": "Capricorn"}, {"house": 2, "sign": "Sagittarius"}, {"house": 3, "sign": "Capricorn"}, {"house": 10, "sign": "Leo"}, {"house": 4, "sign": "Aquarius"}, {"house": 10, "sign": "Leo"}, {"house": 1, "sign": "Scorpio"}]

现在,对于每个符号"键,我想计算每个值出现多少次.

Now for each 'sign' key, I'd like to count how many times each value occurs.

def predominant_sign(data): signs = [k['sign'] for k in data if k.get('sign')] print len(signs)

但是,这会打印出"sign"出现在字典中的次数,而不是获取sign的值并计算出现特定值的次数.

This however, prints number of times 'sign' appears in the dictionary, instead of getting the value of the sign and counting the number of times a particular value appears.

例如,我想看到的输出是:

For example, the output I'd like to see is:

Aquarius: 2 Sagittarius: 2 Gemini: 1 ...

以此类推.我应该改变什么以获得期望的输出?

And so on. What should I change to get the desired output?

推荐答案

使用 collections.Counter 及其 most_common方法:

from collections import Counter def predominant_sign(data): signs = Counter(k['sign'] for k in data if k.get('sign')) for sign, count in signs.most_common(): print(sign, count)

更多推荐

计算python字典中每个键的出现次数

本文发布于:2023-11-30 17:31:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1650903.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字典   次数   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!