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 (get → None 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) # MainzAusgabe-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 |
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.