====== Listen in Python ====== Python kennt viele zusammengesetzte Datentypen (compound data types), die zur Gruppierung unterschiedlicher Werte verwendet werden können. Die flexibelste davon ist die Liste (list): * 1) Eine Liste von Werten (Elemente), die durch Kommas getrennt und von eckigen Klammern eingeschlossen werden. Listenelemente müssen nicht alle denselben Typ haben. * 2) Ebenso wie die Indizierung bei Zeichenketten ist auch die Listenindizierung nullbasiert — das erste Element hat also den Index 0. Auch das von Zeichenketten bekannte Slicing sowie die Verkettung und Vervielfachung + bzw. * sind mit Listen möglich. * 3) Alle Slicing-Operationen geben eine neue Liste zurück, die die angeforderten Elemente enthält. Das bedeutet, dass die folgende Operation eine flache Kopie (shallow copy) der Liste a zurückgibt. * 4) Im Unterschied zu Zeichenketten sind Listen allerdings veränderbar (mutable), so dass es möglich ist, innerhalb einer Liste Veränderungen vorzunehmen. {{:inf:python:pasted:20230313-172840.png}} * 5) Selbst Zuweisungen an Slices sind möglich. Dadurch kann man die Länge einer Liste verändern oder sie sogar ganz leeren. * 6) Die eingebaute Funktion len() lässt sich auch auf Listen anwenden. {{:inf:python:pasted:20230313-172902.png}} * 7) Es ist auch möglich Listen zu verschachteln (nest), das heißt, Listen zu erzeugen, die andere Listen enthalten. * 8) Man kann auch etwas ans Ende einer Liste (append) hängen. Beachte, dass im letzten Beispiel p[1] und q wirklich auf dasselbe Objekt zeigen! {{:inf:python:pasted:20230313-172920.png}} ===== Listenfunktionen ===== * len (Liste) * Gibt die Anzahl der Listenelemente zurück * max (Liste) * Gibt das größte Element zurück * min (Liste) * Gibt das kleinste Element zurück * sum (Liste) * Gibt die Summe der Elemente zurück ===== Listenmethoden: ===== * list.append (obj) * Fügt Objekte am Ende der Liste ein * list.count (obj) * Gibt die Anzahl, wie oft ein Element in der Liste existiert, zurück * list.extend (seq) * Erweitert die Liste, um eine weitere Liste * list.index (obj) * Gibt die Indexposition des ersten Auftretens eines Werts aus einer Liste zurück * list.insert (index, obj) * Fügt Objekte in eine Liste ein * list.pop (obj = Liste [-1] ) * Entfernt ein Element in der Liste (standardmäßig das letzte Element), und gibt den Wert des Elements zurück * list.remove (obj) * Entfernt einen Wert aus der Liste * list.reverse () * Kehrt die Reihenfolge der Elemente um * List.Sort ([funk]) * Sortiert die Liste [[https://www.w3schools.com/python/python_ref_list.asp|W3 Schools - Methoden zu Listen]] ===== Aufgaben zu Listen ===== ==== 1. Aufgabe ==== Speichere die Elemente 'Schwalbe', 'Kokosnuss', 13, 'Spam' und 3.14 in einer Liste mit dem Namen liste ab und versuche herauszufinden, was die folgenden Methoden machen. Prüfe dazu jedes Mal die Liste mit print(liste). >>> liste[2] = 666 >>> len(liste) >>> liste.append('Ni') >>> liste.extend([4, 5, 3.14]) >>> liste.insert(2, 'Taube') >>> liste.count(3.14) >>> liste.index(3.14) >>> liste.remove(3.14) >>> liste.pop() >>> liste.reverse() >>> sum([1,3,5]) ==== 2. Aufgabe ==== Lies das folgende Programm und versuche zu erraten, was die Ausgabe ist. Probiere es anschliessend aus und suche nach einer Erklärung des Verhaltens. liste_a = ['Hallo', 'schönes', 'Wetter'] liste_b = liste_a liste_b[1] = 'schlechtes' print(liste_a[0], liste_a[1], liste_a[2]) ==== 3. Aufgabe ==== Entwickle ein Programm, welches 4 Noten einliest und in eine Liste speichert. Berechne anschließend den Mittelwert (=Summe der Noten / Anzahl der Noten) der 4 Noten.