Расчет частоты значений в словаре - PullRequest
4 голосов
/ 22 февраля 2012

У меня есть словарь, который содержит такие значения {А: 3, б: 9, с: 88, д: 3} Я хочу подсчитать, сколько раз конкретное число появляется в словаре выше. Например, в приведенном выше словаре 3 дважды появляется в словаре. Пожалуйста, помогите написать скрипт Python

Ответы [ 2 ]

12 голосов
/ 22 февраля 2012

Вы должны использовать collections.Counter:

>>> from collections import Counter
>>> d = {'a':3, 'b':9, 'c':88, 'd': 3}
>>> Counter(d.values()).most_common()
[(3, 2), (88, 1), (9, 1)]
1 голос
/ 22 февраля 2012

Я бы использовал defaultdict для этого (в основном более общую версию Counter). Это было с 2.4.

from collections import defaultdict
counter = defaultdict( int )

b = {'a':3,'b':9,'c':88,'d':3}
for k,v in b.iteritems():
    counter[v]+=1

print counter[3]
print counter[88]

#will print
>> 2
>> 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...