ホームページ  >  記事  >  バックエンド開発  >  Python リスト内の単語の出現を効率的にカウントするにはどうすればよいですか?

Python リスト内の単語の出現を効率的にカウントするにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-30 17:02:26809ブラウズ

How to Efficiently Count Word Occurrences in a Python List?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。