Elementhäufigkeitszählung in Python
Wie zählt man effizient das Vorkommen jedes einzelnen Wortes in einer bestimmten Liste? Betrachten Sie den folgenden Code:
<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>
Obwohl diese Methode funktioniert, sind zwei Iterationen durch die Liste erforderlich, einmal zum Erstellen des eindeutigen Wortsatzes und noch einmal zum Zählen der Vorkommen. Können wir das optimieren?
Lösung: Verwendung der Counter-Klasse
Das Python-Sammlungsmodul stellt eine Counter-Klasse bereit, die speziell für diese Aufgabe entwickelt wurde. So können Sie es verwenden:
<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>
Die Counter-Klasse zählt die Vorkommen jedes Elements in der bereitgestellten Iterable, was zu einem Wörterbuch führt, in dem Schlüssel eindeutige Elemente und Werte ihre Anzahl sind. Dieser Ansatz ist effizienter, da nur eine einzige Iteration durch die Eingabeliste erforderlich ist.
Das obige ist der detaillierte Inhalt vonWie kann man Wortvorkommen in einer Python-Liste effizient zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!