collections.Counter
型は、ハッシュ可能なオブジェクトをカウントするために使用することも、マルチコレクションとして使用することもできます。マルチコレクションはコレクションの要素です。 1.複数回出現する可能性があります。
collections.Counter 型は、他のプログラミング言語の bags
または multisets2
に似ています。
(1) 基本的な使い方
counter = collections.Counter(['生物', '印记', '考古学家', '生物', '枣', '印记']) logging.info('counter -> %s', counter) counter.update(['化石', '果实', '枣', '生物']) logging.info('counter -> %s', counter) most = counter.most_common(2) logging.info('most -> %s', most)
実行結果:
INFO - counter -> Counter({'生物': 2, '印记': 2, '考古学家': 1, '枣': 1}) INFO - counter -> Counter({'生物': 3, '印记': 2, '枣': 2, '考古学家': 1, '化石': 1, '果实': 1}) INFO - most -> [('生物', 3), ('印记', 2)]
サンプルプログラムでは、まず collections.Counter() を使用してカウンタを初期化します。オブジェクト。現在の単語の出現数はカウンター オブジェクトで計算されています。collections.Counter()
入力パラメーターは、ここでのリストなどの反復可能なオブジェクトです。次に、update()
メソッドを使用して、新しい単語リストを渡します。このとき、カウンター オブジェクトはカウンターを更新し、累積計算を実行します。最後に、most_common()
を使用します。 counter オブジェクトのメソッドを使用して、時間のランキングを出力します。上位 2 つの単語リスト。
(2) 集合演算
collections.Counter 型は集合演算もサポートしています。
a = collections.Counter({'老虎': 3, '山羊': 1}) b = collections.Counter({'老虎': 1, '山羊': 3}) logging.info('a -> %s', a) logging.info('b -> %s', b) logging.info('a+b -> %s', a + b) logging.info('a-b -> %s', a - b) logging.info('a&b -> %s', a & b) logging.info('a|b -> %s', a | b)
実行結果:
INFO - a -> Counter({'老虎': 3, '兔子': 2, '山羊': 1}) INFO - b -> Counter({'山羊': 3, '老虎': 1}) INFO - a+b -> Counter({'老虎': 4, '山羊': 4, '兔子': 2}) INFO - a-b -> Counter({'老虎': 2, '兔子': 2}) INFO - a&b -> Counter({'老虎': 1, '山羊': 1}) INFO - a|b -> Counter({'老虎': 3, '山羊': 3, '兔子': 2})
例の A と b は両方とも Counter 型のオブジェクトです。また、Counter オブジェクトがキーと値のペアを使用して初期化できることも示しています。
#a b は、すべての要素を含む結合演算を表します。
c = collections.Counter(x=1, y=-1) logging.info('+c -> %s', +c) logging.info('-c -> %s', -c)実行結果:
INFO - +c -> Counter({'x': 1}) INFO - -c -> Counter({'y': 1})Counter 型オブジェクトのプレフィックスとして
/- を使用するだけで、正および負のカウント フィルタリングを行うことができます。達成。 Pythonのこのデザインはとてもエレガントです。
関連する無料学習の推奨事項: Python ビデオ チュートリアル
以上がPythonのコレクション.カウンター型を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。