Exkurs - Listenobjekte
Listenobjekte und ihre Erzeugung
Listen sind (in Python) Objekte vom Typ list
, die - im Sinne der objektorientierten Programmierung -
Daten verwalten und die dem Benutzer Operationen zur Verarbeitung der Daten zur Verfügung stellen.
Objekte müssen erzeugt werden, bevor sie irgendwelche Operationen ausführen können.
Die einfachste Möglichkeit, ein Listenobjekt zu erzeugen, besteht darin, die Liste mit ihren Elementen
direkt anzugeben. So erzeugt die Anweisung L = [0, 1, 2]
eine Liste mit den angegebenen Elementen
und bindet dieses Objekt an die Variable L
.
Eine andere Möglichkeit besteht darin, den sogenannten list
-Konstruktor aufzurufen.
Durch die Anweisung L = list()
wird eine leere Liste erzeugt und an die Variable L
angebunden.
Es gibt (in Python) weitere Möglichkeiten zur Erzeugung von Listen.
Eine davon haben wir schon benutzt: Der Aufruf range(3)
etwa erzeugt die Liste
[0, 1, 2]
.
Aufgabe 1: Listenoperationen
Einige der Operationen, die Listenobjekte ausführen können, sind im folgenden Python-Dialog zu sehen. Finde (eventuell mit weiteren Experimenten) selbst heraus, was diese Operationen bewirken.
>>> L = [] >>> L [] >>> L.append(3) >>> L [3] >>> L.append(5) >>> L [3, 5] >>> L.insert(1, 7) >>> L [3, 7, 5] >>> L.insert(0, 5) >>> L [5, 3, 7, 5] >>> L.remove(5) >>> L [3, 7, 5] >>> L.extend([4, 2]) >>> L [3, 7, 5, 4, 2] >>>
Aufgabe 2: weitere Listenoperationen
Neben den oben im Python-Dialog benutzten Operationen gibt es weitere, die eine ungewöhnliche Schreibweise aufweisen. Wir zeigen sie erst hier in Aktion. Finde (eventuell mit weiteren Experimenten) selbst heraus, was sie bewirken.
>>> L [3, 7, 5, 4, 2] >>> L.__len__() 5 >>> L.__getitem__(1) 7 >>> L.__setitem__(1, 8) >>> L [3, 8, 5, 4, 2] >>> L.__delitem__(1) >>> L [3, 5, 4, 2] >>> L.__len__() 4
Die Schreibweise mit zwei Unterstrichen am Anfang und am Ende des Operationsnamens ist schon ungewöhnlich. Was es damit auf sich hat (es hat etwas mit Überladen von Operationen zu tun), ist hier nicht von Bedeutung.
Eine Schnittstellenbeschreibung
Das folgende (Klassen-) Diagramm zeigt die oben benutzten Listenoperationen.
Eine solches Diagramm (ergänzt um weitere Kommentare, die das Verhalten der Operationen genau beschreiben)
kann als Schnittstellenbeschreibung betrachtet werden.
Hier sind die Operationen aufgeführt, die Objekte vom Typ list
dem Benutzer zur Verfügung stellen.