Python: подсчет повторяющихся значений словаря - PullRequest
4 голосов
/ 30 марта 2011

У меня есть следующий словарь:

dictA = { ('unit1','test1') : 'alpha' , ('unit1','test2') : 'beta', ('unit2','test1') : 'alpha', ('unit2','test2') : 'gamma' , ('unit3','test1') : 'delta' , ('unit3','test2') : 'gamma'   }

Как подсчитать количество повторяющихся значений для каждого теста независимо от единиц измерения?

т.е.

in 'test1 'есть 2x' alpha ', 1x' delta '

в' test2 'есть 1x' beta ', 2x' gamma '

Любые входы?

МногиеСпасибо.

1 Ответ

9 голосов
/ 30 марта 2011

В Python 2.7 или 3.1 или выше вы можете использовать collections.Counter:

from collections import Counter
counts = Counter((k[1], v) for k, v in dictA.iteritems())
print(counts)

отпечатки

Counter({('test1', 'alpha'): 2, ('test2', 'gamma'): 2, ('test2', 'beta'): 1, ('test1', 'delta'): 1})
...