Fortgeschrittene Python-Sammlungen: defaultdict, Counter, deque, namedtuple, etc.

Nutzung des Python-Moduls collections für leistungsstarke Datenstrukturen

Tauchen Sie in Pythons Sammlungsmodul ein und erkunden Sie fortgeschrittene Datenstrukturen wie defaultdict, Counter, deque und namedtuple. Lernen Sie, wie Sie mit diesen Tools Ihren Code vereinfachen und die Leistung bei Datenverarbeitungsaufgaben verbessern können.

Programmierung
Autor:in
Zugehörigkeit
Veröffentlichungsdatum

9. Februar 2024

Geändert

29. April 2025

Schlüsselwörter

Python-Sammlungen-Modul, standarddict tutorial, Zähler in Python, deque Verwendung Python, namedtuple Beispiel, Fortgeschrittene Python-Sammlungen

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.
dd = defaultdict(list)

# Anhängen von Werten an Schlüssel.
dd["fruits"].append("apple")
dd["fruits"].append("banana")
dd["vegetables"].append("carrot")

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

data = ["apple", "banana", "apple", "orange", "banana", "apple"]
counter = Counter(data)

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.
d = deque([1, 2, 3])
d.append(4)          # Anhängen an das Recht
d.appendleft(0)      # Anhängen nach links

print("Deque:", d)

# Pop-Elemente von beiden Enden.
right = d.pop()
left = d.popleft()

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'.
Point = namedtuple("Point", ["x", "y"])

# Erstellen Sie eine Point-Instanz.
p = Point(x=10, y=20)

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

Viel Spaß beim Programmieren und beim Beherrschen von Pythons fortgeschrittenen Sammlungen!

Weitere Artikel erkunden

Hinweis

Hier finden Sie weitere Artikel aus derselben Kategorie, die Ihnen helfen, tiefer in das Thema einzutauchen.

placeholder

placeholder
Keine Treffer
Zurück nach oben

Wiederverwendung

Zitat

Mit BibTeX zitieren:
@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}
}
Bitte zitieren Sie diese Arbeit als:
Kassambara, Alboukadel. 2024. “Fortgeschrittene Python-Sammlungen: defaultdict, Counter, deque, namedtuple, etc.” February 9, 2024. https://www.datanovia.com/de/learn/programming/python/additional-tutorials/collections-module.html.