2013-10-14 3 views
22

私はcollections.Counter()カウンターを使用しています。私はそのうちの2つを意味のある方法で組み合わせたいと思っています。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

より具体的には、 'sum(counters、Counter())'は、合計アルゴリズムが単純な数値ベースではなくCounterベースで始まることを確認します。 – KobeJohn

答えて

35

あなたがする必要があるすべてのそれらを追加します:docsから

>>> 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}) 

いくつかの数学的な操作は、多重集合を生成するカウンタオブジェクトを結合するために設けられている(ゼロより大きいカウントを有するカウンター)。加算と減算は、対応する要素の数を加算または減算することによってカウンタを組み合わせます。

関連する問題