Python:计算字典的重复值

siv*_*iva 4 python dictionary count repeat

我有一本字典如下:

dictA = { ('unit1','test1') : 'alpha' , ('unit1','test2') : 'beta', ('unit2','test1') : 'alpha', ('unit2','test2') : 'gamma' , ('unit3','test1') : 'delta' , ('unit3','test2') : 'gamma'   }
Run Code Online (Sandbox Code Playgroud)

如何计算每个测试的重复值的数量,与单位无关?

'test1'中有2x'alpha',1x'delta'

'test2'中有1x'beta',2x'gamma'

有什么投入?

非常感谢.

Sve*_*ach 9

在Python 2.7或3.1或更高版本中,您可以使用collections.Counter:

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

版画

Counter({('test1', 'alpha'): 2, ('test2', 'gamma'): 2, ('test2', 'beta'): 1, ('test1', 'delta'): 1})
Run Code Online (Sandbox Code Playgroud)