Das Zählen mehrerer sich wiederholender Objekte in einem Durchgang ist ein massives Problem in der Programmierlandschaft. Glücklicherweise bietet Python mehrere Techniken und Werkzeuge, die man sich zunutze machen kann, um dieses Problem zu lösen. Der Zähler, den Python aus seinen Sammlungen bereitstellt, bietet eine pythonische, effiziente und saubere Lösung.
Diese Unterklasse bietet von Haus aus hervorragende Zählfunktionen, etwas, wonach Programmierer immer suchen. Zu verstehen, was ein Python-Zähler ist und ihn effektiv zu nutzen, ist eine praktische Fähigkeit, die Python-Entwickler lernen müssen.
Wie Python Objekte zählt
Es gibt viele Situationen, in denen man die Anzahl der Objekte in einer Datenquelle zählen muss, um zu erfahren, wie regelmäßig sie vorkommen. Einfach ausgedrückt, man möchte wissen, wie häufig sie vorkommen. So kann man z. B. feststellen, wie oft ein bestimmtes Element in einer Folge von Werten oder einer Liste auftaucht. Das Zählen von Elementen kann unglaublich schnell und einfach sein, besonders wenn die Listen kurz sind. Andererseits kann das Zählen bei langen Listen recht zeitaufwändig und kompliziert werden.
Im Allgemeinen wird ein Zähler zum effektiven Zählen von Objekten verwendet. Ein Zähler ist eine ganzzahlige Variable, deren Anfangswert Null ist. Nach der Zählung müssen Sie den Zähler, der die Anzahl der Auftauchen eines bestimmten Objekts in der Datenquelle (Eingabe) widerspiegelt, inkrementieren.
Wenn Sie die Häufigkeit des Auftauchens eines Objekts zählen wollen, ist ein einzelner Zähler ideal. Das Zählen zahlreicher Objekte ist jedoch etwas völlig anderes, da Sie für jedes einzelne Objekt, das Sie zählen, einen Zähler bilden müssen. Die Verwendung eines Python-Wörterbuchs wäre eine kluge Wahl, wenn Sie mehrere Objekte auf einmal zählen wollen.
Die Schlüssel des Wörterbuchs helfen Ihnen, jedes Objekt zu speichern, das Sie zählen wollen. Außerdem können die Wörterbuchwerte die Wiederholungen eines Objekts verfolgen, so dass der Zählvorgang relativ einfach wird.
Wenn Sie beispielsweise ein Wörterbuch zum Zählen von Objekten verwenden wollen, die in sequenzieller Form vorliegen, wäre es am besten, eine Schleife über die gesamte Sequenz zu ziehen und zu prüfen, ob das betreffende Objekt im Wörterbuch für die Initialisierung des Schlüssel-Wert-Paares enthalten ist. Sobald dies der Fall ist, können Sie die Zählung je nach Situation erhöhen.
Wie der Python-Zähler funktioniert
Wie bereits erwähnt, ist der Zähler im Wesentlichen eine Unterklasse des Python-Wörterbuchs, das speziell zum Zählen von hashfähigen Objekten im Python-Programm entwickelt wurde. Dieses Wörterbuch speichert Objekte wie Zähler und Schlüssel in Form von Werten. Wenn Sie den Zähler nutzen wollen, müssen Sie eine Iterable oder eine Sequenz von verschiedenen hashbaren Objekten anbieten, die als kritisches Argument für den Konstruktor der Klasse dient.
Der Zähler iteriert zunächst mit Hilfe einer Eingabesequenz und zählt dann, wie oft ein bestimmtes Objekt auftaucht. Lassen Sie uns nun die gebräuchlichen Techniken besprechen, die Programmierer für die Konstruktion von Zählern verwenden:
Thekenbau
Sie können mehrere Techniken verwenden, um Zählerinstanzen zu entwickeln, aber wenn Ihr Hauptziel darin besteht, mehrere Objekte gleichzeitig zu zählen, wäre es am besten, eine Iterable oder Sequenz für den Beginn der Zählung zu verwenden.
Aktualisieren von Objektzählungen
Nachdem Sie eine Zählerinstanz erhalten haben, verwenden Sie den Befehl .update(), um sie mit brandneuen Zählungen und Objekten zu aktualisieren. Anstatt Werte zu ersetzen, sorgt die Implementierung von .update(), die counter bereitstellt, dafür, dass bestehende Zählungen zusammengeführt werden. Sie entwickelt auch neue Paare von Schlüsselzählungen, wann immer dies erforderlich ist.
Programmierer können den Befehl .update() sowohl mit Mappings als auch mit Iterables als Argumente verwenden. Denken Sie daran, wenn Sie eine Iterable verwenden, zählt diese Methode die Elemente, nach denen sie Updates für den Zähler macht.
Zähler mit String
Python betrachtet alles als Objekt, auch Strings. Sie können eine Python-Zeichenkette leicht erstellen, indem Sie Zeichen mit doppelten Anführungszeichen zusammenfassen. Da Python keine Zeichentypen erkennt, behandelt es die Zeichenketten als eine einzige, was in der Programmierwelt als Teilstring bezeichnet wird.
Das folgende Beispiel zeigt eine Zeichenkette, die den Zähler passiert hat. Neben der Rückgabe des Wörterbuchformats unter Verwendung des Schlüssel- und Wertepaars wird auch das Tempo berücksichtigt.
from collections import Zähler
my_str = “Willkommen beim Programmieren lernen!”
print(Zähler(mein_str))
Ausgabe:
Counter({‘o’: 3, ‘ ‘: 3, ‘u’: 3, ‘e’: 2, ‘l’: 2, ‘t’: 2, ‘r’: 2, ‘9’: 2, ‘W’: 1,
‘c’: 1, ‘m’: 1, ‘G’: 1, ‘T’: 1, ‘i’: 1, ‘a’: 1, ‘s’: 1, ‘!’: 1})
Zähler mit Wörterbuch
Das Wörterbuch enthält Elemente in Form von Schlüssel- und Wertepaaren. Sie müssen diese Elemente in geschweifte Klammern schreiben. Das Wörterbuch wird in Hash-Table-Objekte umgewandelt, nachdem es an den Zähler übergeben wurde. In der Zwischenzeit werden die Elemente zu Schlüsseln. Nachfolgend ein Beispiel zur Verdeutlichung:
from collections import Zähler
dict1 = {‘x’: 4, ‘y’: 2, ‘z’: 2, ‘z’: 2}
print(Zähler(dict1))
Ausgabe:
Zähler({‘x’: 4, ‘y’: 2, ‘z’: 2})
Mit Tupel kontern
Ein Tupel ist im Grunde eine Gruppe von Objekten, die mit Hilfe von Kommas in runden Klammern getrennt werden. Der Zähler bietet die Zählung für jedes Element innerhalb des Tupels. Das Tupel wird zu einem Hashtable-Objekt, nachdem es an den Zähler übergeben wurde, während die darin enthaltenen Elemente zu Schlüsseln werden und die Werte die Gesamtzahl der Elemente darstellen.
Python Counter – Was sind die wichtigsten Erkenntnisse?
In diesem Beitrag haben wir besprochen, was Python Counter ist und wie man damit zahlreiche Objekte innerhalb einer Iterable zählen kann. Hier sind die wichtigsten Erkenntnisse, die wir gewonnen haben.
- Counter nutzt dict-Objekte, Listen, Strings und andere Iterables zum Zählen von Objekten, sofern diese hashbar sind
- Sie müssen den Befehl most_common verwenden, wenn Sie gemeinsame Elemente in Sammlungsobjekten finden wollen
- Bei der Verwendung der Zählerklasse können Programmierer auf Fehler stoßen, wenn das Containerobjekt (z. B. ein Listenobjekt) ein nicht verrechenbares Element enthält. Sie können dieses Problem beheben, indem Sie ein Listenelement in ein Tupel umwandeln, bevor Sie es an die Zählerklasse übergeben