私はcollections
モジュールのカウンタを持っています。すべてのカウントを合計する最善の方法は何ですか?Pythonでカウンタの値をすべて合計する
は例えば、私が持っている:
my_counter = Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1})
と7
が返された値を取得したいと思います。私が知る限り、関数sum
は複数のカウンタを一緒に追加するためのものです。このような
私はcollections
モジュールのカウンタを持っています。すべてのカウントを合計する最善の方法は何ですか?Pythonでカウンタの値をすべて合計する
は例えば、私が持っている:
my_counter = Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1})
と7
が返された値を取得したいと思います。私が知る限り、関数sum
は複数のカウンタを一緒に追加するためのものです。このような
何かが、
sum(my_counter.itervalues())
あなたが任意の中間データ構造を作成しないこの方法を行うだけで合計が遅延評価されます。
c = Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1})
len(list(c.elements()))
>>> from collections import Counter
>>> sum(Counter({'a': 2, 'b': 2, 'c': 2, 'd': 1}).values())
7
カウンタオブジェクトを操作するための一般的なパターン:合計(c.values())すべてのカウントの
#合計
Python 3.6.1で正しく動作します! –
あなたが持っていた場合(例えば、 'my_counter = Counter(source)')、 'len(source)'を実行するだけです。 – acushner