Einführung
Das in Python eingebaute Modul collections
bietet mehrere leistungsfähige Datenstrukturen, die die Möglichkeiten der Standardtypen erweitern. In diesem Tutorial werden wir einige dieser fortgeschrittenen Sammlungen - wie defaultdict, Counter, deque und namedtuple - untersuchen und demonstrieren, wie sie Ihren Code vereinfachen und die Leistung bei der Bearbeitung komplexer Datenverarbeitungsaufgaben verbessern können.
defaultdict
Unterklasse
Die defaultdict
ist eine Unterklasse der eingebauten dict
, die einen Standardwert zurückgibt, wenn ein Schlüssel fehlt. Damit entfällt die Notwendigkeit, das Vorhandensein von Schlüsseln zu prüfen.
#|label: defaultdict-example
from collections import defaultdict
# Erstellen Sie ein Standarddict mit list als Standardfabrik.
= defaultdict(list)
dd
# Anhängen von Werten an Schlüssel.
"fruits"].append("apple")
dd["fruits"].append("banana")
dd["vegetables"].append("carrot")
dd[
print("defaultdict:", dict(dd))
Ergebnisse:
defaultdict: {'fruits': ['apple', 'banana'], 'vegetables': ['carrot']}
Counter
Unterklasse
Die Klasse Counter
ist nützlich zum Zählen von Hash-Objekten. Sie erleichtern das Zählen von Vorkommen und das Durchführen von Operationen, wie z. B. das Auffinden der häufigsten Elemente.
#|label: counter-example
from collections import Counter
= ["apple", "banana", "apple", "orange", "banana", "apple"]
data = Counter(data)
counter
print("Counter:", counter)
print("Most common:", counter.most_common(2))
Ergebnisse:
Counter: Counter({'apple': 3, 'banana': 2, 'orange': 1})
Most common: [('apple', 3), ('banana', 2)]
deque
Unterklasse
deque
(double-ended queue) unterstützt schnelle Appends und Pops von beiden Enden, was es ideal für die Implementierung von Warteschlangen oder Stapeln macht.
#|label: deque-example
from collections import deque
# Erstellen Sie ein Deque und fügen Sie Elemente an beiden Enden hinzu.
= deque([1, 2, 3])
d 4) # Anhängen an das Recht
d.append(0) # Anhängen nach links
d.appendleft(
print("Deque:", d)
# Pop-Elemente von beiden Enden.
= d.pop()
right = d.popleft()
left
print("After popping, deque:", d)
print("Popped from right:", right, "and left:", left)
Ergebnisse:
Deque: deque([0, 1, 2, 3, 4])
After popping, deque: deque([1, 2, 3])
Popped from right: 4 and left: 0
namedtuple
Unterklasse
namedtuple
bietet eine Möglichkeit, leichtgewichtige Objekttypen mit benannten Feldern zu erstellen. Sie sind unveränderlich und können wie normale Tupel verwendet werden, während sie die Lesbarkeit des Codes verbessern.
#|label: namedtuple-example
from collections import namedtuple
# Definieren Sie ein benanntes Tupel namens 'Point'.
= namedtuple("Point", ["x", "y"])
Point
# Erstellen Sie eine Point-Instanz.
= Point(x=10, y=20)
p
print("Namedtuple Point:", p)
print("X coordinate:", p.x)
print("Y coordinate:", p.y)
Ergebnisse:
Namedtuple Point: Point(x=10, y=20)
X coordinate: 10
Y coordinate: 20
Zusätzliche Sammlungen
Während die obigen Beispiele die gebräuchlichsten fortgeschrittenen Sammlungen abdecken, enthält Pythons collections
-Modul auch:
- OrderedDict: Obwohl Python 3.7+ Dicts die Einfügereihenfolge beibehalten, kann OrderedDict für spezielle Ordnungsoperationen nützlich sein.
- ChainMap: Zur Verwaltung mehrerer Wörterbücher als eines.
- UserDict, UserList und UserString: Für eine einfachere Unterklassifizierung von eingebauten Typen.
Schlussfolgerung
Fortgeschrittene Datenstrukturen im Modul collections
können viele Aufgaben vereinfachen, indem sie integrierte Funktionen bereitstellen, die über die Standarddatentypen hinausgehen. Die Verwendung von Werkzeugen wie defaultdict, Counter, deque und namedtuple kann zu saubererem, effizienterem und besser lesbarem Code führen. Experimentieren Sie mit diesen Sammlungen, um zu sehen, wie sie Ihre Datenverarbeitung und Anwendungslogik verbessern können.
Weiterführende Literatur
- Umfassender Leitfaden zu Python-Datenstrukturen
- Handhabung verschachtelter Datenstrukturen in Python
- Erweiterte Operationen mit Datenstrukturen in Python
- Leistungsvergleiche und bewährte Verfahren für Python-Datenstrukturen
Viel Spaß beim Programmieren und beim Beherrschen von Pythons fortgeschrittenen Sammlungen!
Weitere Artikel erkunden
Hier finden Sie weitere Artikel aus derselben Kategorie, die Ihnen helfen, tiefer in das Thema einzutauchen.
Wiederverwendung
Zitat
@online{kassambara2024,
author = {Kassambara, Alboukadel},
title = {Fortgeschrittene Python-Sammlungen: defaultdict, Counter,
deque, namedtuple, etc.},
date = {2024-02-09},
url = {https://www.datanovia.com/de/learn/programming/python/additional-tutorials/collections-module.html},
langid = {de}
}