3. Listen#
3.1. Der abstrakte Datentyp Liste#
Listen sind in der Informatik allgegenwärtig. Man nutzt sie immer, wenn für die Verarbeitung von Daten wichtig ist, in welcher Reihenfolge sie vorliegen bzw. an welcher genauen Position (Index) ein bestimmter Wert steht.
Die wichtigsten Operationen von Listen sind in Abb. 3.1 aufgelistet 😉:
Abb. 3.1 Der abstrakte Datentyp Liste als UML-Klassendiagramm (FoSa 4.3.2)#
Als Benutzer des Listen-Typs wollen wir gar nicht unbedingt wissen, wie eine Liste intern implementiert ist; es reicht, dass sie sich garantiert so verhält, wie wir es erwarten. Z.B. erwarten wir, dass nach den Operationen
namen = ["Zora", "Xenia", "Willi"]
namen.anhaengen("Vito")
namen.einfuegen(1, "Yannick")
namen.entfernen("Xenia")
namen.einfuegenVorne("Alex")
die Liste so aussieht:
Resultierende Liste (Welches Ergebnis erwartest du?)
['Alex', 'Zora', 'Yannick', 'Willi', 'Vito']
3.1.1. Listen in Python#
Auch bei den Datentypen, die von einer Programmiersprache oder eine Bibliothek bereitgestellt werden, interessiert uns v.a., was wir damit tun können, nicht wie sie intern implementiert sind. Wir wissen z.B., dass der Datentyp list
in Python Methoden wie append
, insert
, remove
, index
usw. bereitstellt. Damit können wir das Pseudocode-Beispiel von oben nachbauen.
# AUFGABE: Setze das obige Pseudocode-Beispiel in Python um, so dass
# die korrekte Ausgabe erzeugt wird.
namen = ["Zora", "Xenia", "Willi"]
# HIER ERGÄNZEN
print(namen) # Erwartete Ausgabe: ['Alex', 'Zora', 'Yannick', 'Willi', 'Vito']
Lösung:
Show code cell content
# LÖSUNG: Setze das obige Pseudocode-Beispiel in Python um, so dass
# die korrekte Ausgabe erzeugt wird.
namen = ["Zora", "Xenia", "Willi"]
namen.append("Vito")
namen.insert(1, "Yannick")
namen.remove("Xenia")
namen.insert(0, "Alex")
print(namen) # Erwartete Ausgabe: ['Alex', 'Zora', 'Yannick', 'Willi', 'Vito']
['Alex', 'Zora', 'Yannick', 'Willi', 'Vito']