📚 LernsiteFach wählenKOLEFINAQUBAETFÜDIMAINFEINKMAEL ↗

🗂️ Datenstrukturen — Liste · Tuple · Set · Dictionary

INF — Informatik (Python & Datenbanken) · Prof. Dr. Mehler · ~10 Aufgaben · Python + relationale Datenmodelle

Datenstrukturen — Liste · Tuple · Set · Dictionary

Status: GEPRÜFT, alle Ausgaben mit Python 3.12 verifiziert.

Die 4 Datenstrukturen im Vergleich

geordnet änderbar Duplikate Notation
list ja ja ja [ … ]
tuple ja nein ja ( … )
set nein ja nein { … }
dict ja ja keys nein {k: v}
listea = ["Apfel", "Kiwi"]
listeb = list(range(1, 5))   # [1, 2, 3, 4]
tuplea = (2, 3)              # oder: tupleb = 2, 3
menge   = set(["Apfel","Apfel"])   # {'Apfel'} — Duplikate fallen weg
auto    = {"marke": "VW", "baujahr": 1972}

Liste: Zugriff & Methoden

Index startet bei 0, letztes Element = len(l)-1.

Methode Wirkung
len(l) Anzahl Elemente
l[2] 3. Element
l[-1] / l[-2] letztes / vorletztes Element
l[1:3] Slicing: Index 1 und 2 (ohne 3)
l.index(x) Index des ersten Vorkommens
l.count(x) wie oft enthalten
l.append(x) hinten anhängen
l.insert(i, x) an Position einfügen
l.remove(x) erstes Vorkommen löschen
del l[0] über Index löschen
l.sort() / l.copy() sortieren / kopieren
l1 + l2 aneinanderhängen
sum/min/max/len Standard-Funktionen
x in l enthalten? True/False

Tuple: kein l[i] =, kein append, kein remove. Index-Zugriff und Slicing gehen.

Dictionary & Set

Methode Wirkung
d[key] / d.get(key) Zugriff (getNone statt Fehler)
d.keys() / .values() alle Schlüssel / Werte
d.items() Liste von (key, value)-Tupeln
d.update({k: v}) ändern oder neu anlegen
d.pop(k) / del d[k] Eintrag entfernen
d.clear() alles löschen
k in d Schlüssel vorhanden? (prüft keys, nicht values)
for k in d: iteriert über die Schlüssel
zuordn = {"ProduktA": 2.00, "ProduktB": 2.50}
for key in zuordn:
print(key + " " + str(zuordn[key]))
werte = zuordn.values()
print("Durchschnitt:", sum(werte)/len(werte))   # 2.25
zuordn.update({"ProduktC": 1.50})
for k, v in zuordn.items():
print("Key:", k, "Value:", v)

set: s.add(x) · s.update(liste) · s.remove(x) (Fehler wenn fehlt) · s.discard(x) (kein Fehler) · s1.union(s2) · kein Index-Zugriff. Duplikate fallen weg: set([1,2,2,3]) hat 3 Elemente.

Muster: größter Wert im Dictionary (mit Namen)

max(d.values()) liefert nur die Zahl. Für den zugehörigen Schlüssel zwei Hilfsvariablen:

staedte = {"Mainz": 220000, "Bingen": 25000, "Worms": 84000}
maxstadt = None
maxwert = 0
for stadt in staedte:
if staedte[stadt] > maxwert:
│   │   maxwert = staedte[stadt]
│   │   maxstadt = stadt
print(maxstadt)   # Mainz

Ausgabe-Quiz: so druckt Python

Vorgehen: Code Zeile für Zeile durchgehen, Inhalt jeder Variablen danebenschreiben. Bei append/update/pop/remove/sort/insert gilt die Änderung ab da für alle folgenden Zeilen. Ausgabe exakt notieren.

Was Ausgabe
Liste ['Apfel', 'Kiwi'] (einfache Hochkommas)
Dictionary {'Stift': 300}
d.keys() dictkeys(['a']) — Wrapper wird mitgedruckt
d.values() dictvalues([1])
d.items() dictitems([('a', 1)])
1_000 1000
nicht gefundener key (.get) None
print("x: ", v) Komma erzeugt zusätzliches Leerzeichen
String pur ohne Anführungszeichen
⚠️ Mutierende Methoden liefern None

l.sort(), l.append(), d.update() verändern die Struktur, geben aber nichts zurück → print(l.sort()) druckt None.

Ein vollständig durchgerechnetes print-Quiz steht in „Übungsaufgaben — alle gelöst“, Aufgabe A6.