2013-10-14 40 views
22

我與collections.Counter()櫃檯工作。我想以有意義的方式將其中的兩個結合起來。總結2 collections.Counter()的內容對象

假設我有2個櫃檯,說,

Counter({'menu': 20, 'good': 15, 'happy': 10, 'bar': 5}) 

Counter({'menu': 1, 'good': 1, 'bar': 3}) 

我想直到結束:

Counter({'menu': 21, 'good': 16, 'happy': 10,'bar': 8}) 

我怎樣才能做到這一點?

+0

所有你需要做的是總結他們。 –

+0

更具體地說,'總和(計數器,計數器())'以確保和算法與計數器庫,而不是一個簡單的數字基地開始。 – KobeJohn

回答

35

所有你需要做的就是將它們添加:

>>> from collections import Counter 
>>> a = Counter({'menu': 20, 'good': 15, 'happy': 10, 'bar': 5}) 
>>> b = Counter({'menu': 1, 'good': 1, 'bar': 3}) 
>>> a + b 
Counter({'menu': 21, 'good': 16, 'happy': 10, 'bar': 8}) 

docs

一些數學運算提供了組合計數器對象產生多重態(即具有計數大於零專櫃)。加法和減法通過加或減相應元素的計數來組合計數器。