Python Tutorial für Data Science: Grundlagen: Datenstrukturen

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