2011-03-30 48 views
4

的重複值I有一個字典如下:的Python:計數字典

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

我怎樣才能計數每個測試獨立的單位重複值的數目?

在 'TEST1' 有2X '的α'

,爲1x增量'

在 'TEST2' 有1個 '測試',2倍 'γ'

任何輸入

很多謝謝。

回答

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) 

打印

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

的感謝!只是升級到Python 2.7。 :) – siva 2011-03-30 18:13:53

+0

在以前的版本中'collections.defaultdict(int)'的工作方式相似。 – chmullig 2011-03-30 18:28:29