Python での項目頻度カウント
指定されたリスト内の各固有の単語の出現を効率的にカウントするにはどうすればよいでしょうか?次のコードを考えてみましょう。
<code class="python">words = "apple banana apple strawberry banana lemon" uniques = set(words.split()) freqs = [(item, words.split().count(item)) for item in uniques] print(freqs)</code>
このメソッドは機能しますが、リストを 2 回反復する必要があります。1 回目は一意の単語セットを作成し、もう 1 回目は出現数をカウントします。これを最適化できますか?
解決策: Counter クラスの使用
Python コレクション モジュールは、このタスク用に特別に設計された Counter クラスを提供します。使用方法は次のとおりです。
<code class="python">from collections import Counter words = "apple banana apple strawberry banana lemon" Counter(words.split()) # Output: Counter({'apple': 2, 'banana': 2, 'strawberry': 1, 'lemon': 1})</code>
Counter クラスは、指定された反復可能オブジェクト内の各項目の出現をカウントし、その結果、キーが一意の項目、値がそのカウントであるディクショナリが作成されます。このアプローチは、入力リストを 1 回繰り返すだけで済むため、より効率的です。
以上がPython リスト内の単語の出現を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。