我有一个看起来有点像这样的 python 字典对象:
[{"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"}]
现在对于每个“符号”键,我想计算每个值出现的次数。
def predominant_sign(data):
signs = [k['sign'] for k in data if k.get('sign')]
print len(signs)
但是,这会打印“符号”在字典中出现的次数,而不是获取 符号
的值并计算特定值出现的次数。
例如,我希望看到的输出是:
Aquarius: 2
Sagittarius: 2
Gemini: 1
...
等等。我应该更改什么以获得所需的输出?
最佳答案
使用collections.Counter
及其 most_common
method :
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 - 计算 python 字典中每个键的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30963408/