So zählen Sie Vorkommen in einer Liste in Python
Erfahren Sie, wie Sie das Vorkommen von Elementen in einer Python-Liste am besten zählen können. Vergleichen Sie die count()-Methode,collections.Counter und die Wörterbuchzählung.
Übersicht
Bei der Analyse von Datensätzen müssen Sie häufig das Vorkommen einzelner Elemente zählen. Beispielsweise können Sie zählen, wie viele Stimmen jeder Kandidat erhalten hat, Worthäufigkeiten in Textdateien zählen oder Duplikate in Transaktionsprotokollen identifizieren. Python bietet mehrere Tools zur Lösung dieses Problems, je nachdem, ob Sie eine einzelne Elementanzahl oder eine vollständige Häufigkeitszählung suchen.
Um die Häufigkeit eines einzelnen spezifischen Elements zu überprüfen, bietet der integrierte Listentyp eine „.count(value)“-Methode. Es durchläuft die Liste und gibt eine Ganzzahl zurück, die zählt, wie oft genau dieser Wert vorkommt. Obwohl es einfach und lesbar ist, ist der Aufruf von „.count()“ in einer Schleife, um die Anzahl aller Elemente zu ermitteln, äußerst ineffizient, da er in der Komplexität O(N^2) ausgeführt wird.
Um die Häufigkeiten aller Elemente gleichzeitig in einem einzigen Durchgang zu zählen, bietet die Standardbibliothek die Klasse „Counter“ innerhalb des Moduls „Collections“. Die Übergabe einer Liste an „Counter“ gibt ein wörterbuchähnliches Objekt zurück, das die Häufigkeiten aller Elemente in O(N)-Zeit darstellt. Es bietet auch Hilfsmethoden wie „most_common()“, um schnell die Top-Elemente abzurufen.
Code- und Ausführungsausgabe
Dieser Code demonstriert das Zählen einzelner Elemente in Listen und das Ermitteln der Gesamtzahl der Elemente mithilfe von „collections.Counter“.
from collections import Counter
colors = ["red", "blue", "red", "green", "blue", "red"]
# Method 1: Count a single item using list.count()
red_count = colors.count("red")
print("Occurrences of 'red':", red_count)
# Method 2: Count all items using collections.Counter (Fast and powerful)
color_counts = Counter(colors)
print("\nCounter Object:", color_counts)
print("Count of 'blue':", color_counts["blue"])
# Getting the top most common items
print("Most common color:", color_counts.most_common(1))
# Method 3: Counting manually using a loop and a standard dictionary
manual_counts = {}
for item in colors:
manual_counts[item] = manual_counts.get(item, 0) + 1
print("\nManual dict count:", manual_counts)Occurrences of 'red': 3
Counter Object: Counter({'red': 3, 'blue': 2, 'green': 1})
Count of 'blue': 2
Most common color: [('red', 3)]
Manual dict count: {'red': 3, 'blue': 2, 'green': 1}Schrittweise Umsetzung
- Rufen Sie list_variable.count(value) auf, wenn Sie nur die Anzahl eines einzelnen bestimmten Elements in der Liste benötigen.
- Importieren Sie „collections.Counter“ und übergeben Sie die Liste, um alle eindeutigen Elemente in einem einzigen optimierten Durchgang zu zählen.
- Verwenden Sie die Methode .most_common(n) für ein Counter-Objekt, um die n häufigsten Elemente zu extrahieren.
Häufig gestellte Fragen
Was passiert, wenn ich in einem Collections.Counter-Objekt nach einem fehlenden Schlüssel suche?
Im Gegensatz zu einem Standardwörterbuch, das einen KeyError auslöst, gibt ein Counter-Objekt für fehlende Elemente 0 zurück, was null Vorkommnissen entspricht.
Wie hoch ist die zeitliche Komplexität von Counter im Vergleich zum Zählen in einer Schleife mit list.count()?
Der Zähler zählt alle Elemente in O(N) linearer Zeit, indem er die Liste einmal durchläuft. Das Durchlaufen von Listenelementen und das Aufrufen von list.count() benötigt O(N^2) quadratische Zeit, was bei großen Listen extrem langsam ist.
Verwandte Themen
Erfahren Sie, wie Sie die Länge einer Liste in Python mithilfe der Funktion len() ermitteln. Verstehen Sie die O(1)-Zeitkomplexität und die Überprüfungsanzahl.
So entfernen Sie Duplikate aus einer Liste in PythonErfahren Sie, wie Sie Duplikate aus einer Liste in Python entfernen und dabei die Reihenfolge beibehalten oder ignorieren. Vergleichen Sie Satzkonvertierungen, Diktiertasten und Schleifenmethoden.
Empfohlene Python-Ressourcen
Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.
Python-Listen
Erfahren Sie alles über Python-Listen. Erfahren Sie, wie Sie Arrays in Python nativ erstellen, segmentieren, ändern und durchlaufen.
Spickzettel für Python-String-Methoden
Ein vollständiges Referenzhandbuch für die Python-String-Manipulation. Meistern Sie das Formatieren, Suchen, Teilen, Ersetzen und Überprüfen von Zeichenfolgeneigenschaften.
Python vs. JavaScript: Welche Programmiersprache ist die beste?
Ein umfassender Vergleich zwischen Python und JavaScript. Entdecken Sie Syntaxunterschiede, Leistung, Anwendungsfälle (Backend vs. Frontend) und Codierungsbeispiele.