Datenstrukturen sind die Grundbausteine in Python, um Informationen zu speichern und zu organisieren.
Für Data Scientists sind sie besonders wichtig, weil sie bestimmen, wie effizient Daten verarbeitet werden können – bevor man mit Bibliotheken wie pandas oder NumPy arbeitet.
In diesem Abschnitt lernst du die wichtigsten eingebauten Datenstrukturen in Python kennen:
- Listen (
list) - Tupel (
tuple) - Mengen (
set) - Wörterbücher (
dict) - sowie nützliche Spezialstrukturen aus dem Modul
collections.
Listen (list)
- Eine Liste ist eine geordnete Sammlung von Elementen.
- Sie ist veränderbar (mutable): Elemente können hinzugefügt, gelöscht oder überschrieben werden.
- Listen eignen sich für Sequenzen von Daten, z. B. Zahlen, Strings oder gemischte Typen.
# Beispiel: Liste anlegen und bearbeiten
zahlen = [1, 2, 3, 4]
print(zahlen) # [1, 2, 3, 4]
zahlen.append(5) # Element anhängen
zahlen[0] = 10 # Erstes Element überschreiben
print(zahlen) # [10, 2, 3, 4, 5]
Tupel (tuple)
- Ein Tupel ist ebenfalls eine geordnete Sammlung, aber unveränderbar (immutable).
- Tupel werden häufig verwendet, wenn man feste Daten speichern möchte, die sich nicht ändern sollen.
- Vorteil: Sie sind oft schneller und können als Schlüssel in Wörterbüchern verwendet werden.
# Beispiel: Tupel anlegen
koordinaten = (10, 20)
print(koordinaten[0]) # 10
Mengen (set)
- Eine Menge ist eine ungeordnete Sammlung ohne doppelte Elemente.
- Typisch für Mengen ist, dass man Schnittmengen, Vereinigungen oder Differenzen berechnen kann – ähnlich wie in der Mathematik.
- Praktisch z. B. für das Entfernen von Duplikaten.
# Beispiel: Mengenoperationen
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
print(a.union(b)) # {1, 2, 3, 4, 5, 6}
print(a.intersection(b))# {3, 4}
Wörterbücher (dict)
- Ein Wörterbuch speichert Daten als Schlüssel-Wert-Paare.
- Der Schlüssel muss eindeutig und unveränderbar sein (z. B. String oder Zahl).
- Typisch für Dictionaries ist, dass man Daten schnell nachschlagen kann – ähnlich wie in einem echten Wörterbuch.
# Beispiel: Wörterbuch mit Schlüssel-Wert-Paaren
person = {
"name": "Anna",
"alter": 29,
"beruf": "Data Scientist"
}
print(person["name"]) # Anna
person["alter"] = 30 # Wert ändern
Spezialstrukturen aus collections
Das Python-Modul collections bietet weitere nützliche Strukturen:
Counter: Zählt Elemente (praktisch für Häufigkeiten).defaultdict: Wörterbuch mit Standardwerten.deque: Doppelt-verkettete Liste, effizient für Anhängen/Löschen an beiden Enden.
from collections import Counter, defaultdict, deque
# Counter
fruechte = ["Apfel", "Banane", "Apfel", "Orange", "Banane"]
print(Counter(fruechte)) # Counter({'Apfel': 2, 'Banane': 2, 'Orange': 1})
# defaultdict
woerterbuch = defaultdict(int)
woerterbuch["x"] += 1
print(woerterbuch["x"]) # 1
print(woerterbuch["y"]) # 0 (Standardwert)
# deque
d = deque([1, 2, 3])
d.appendleft(0)
print(d) # deque([0, 1, 2, 3])
Zusammenfassung
- Listen → veränderbar, geordnet
- Tupel → unveränderbar, geordnet
- Mengen → unveränderbar, ungeordnet, keine Duplikate
- Wörterbücher → Schlüssel-Wert-Paare, schnelle Nachschlage-Struktur
collections→ erweiterte Datenstrukturen für Spezialfälle