Alles zum Thema Listen
https://quickref.me/python#python-lists
https://www.w3schools.com/python/python_lists.asp
https://www.codecademy.com/learn/learn-python-3/modules/learn-python3-lists/cheatsheet
Was sind Listen?
Wir haben bisher primitive Datentypen kennen gelernt: int, float, str und bool.
Jetzt lernen wir einen komplexen (zusammengesetzten) Datentyp kennen: list.
Eine Liste kann mehrere Elemente beliebiger Typen enhalten (auch andere Listen!). Listen gehören zu den Container - Typen. Ein Container ist ein Objekt, das andere Werte "enthält" oder "speichert".
Warum werden Listen verwendet?
Statt viele einzelne Variablen zu verwenden:
messwert_1 = 85
messwert_2 = 22
messwert_3 = 34
messwert_4 = 40
messwert_5 = 25
messwert_6 = 46
kann man die Werte auch in einer Liste speichern:
# Liste definieren
messwerte = [85, 22, 34, 40, 25, 46]
print(messwerte) # [85, 22, 34, 40, 25, 46]
Eine Liste kann dynamisch wachsen und schrumpfen, was sehr nützlich ist, da sie es ermöglicht, flexibel mit einer variablen Anzahl von Elementen zu arbeiten. Man kann Elemente hinzufügen, entfernen oder ändern, ohne die gesamte Datenstruktur neu erstellen zu müssen. Das macht Listen besonders praktisch für viele Anwendungen, wie z. B. das Sammeln von Benutzereingaben, das Verarbeiten von Daten oder das Zwischenspeichern von Ergebnissen.
Größe der Liste
Mit der len()
Funktion lässt sich herausfinden, wie viele Elemente in einer Liste sind,
d.h. wie groß die Liste ist:
# Liste definieren
messwerte = [85, 22, 34, 40, 25, 46]
# Größe des Containers mit der len() Funktion bestimmen
anzahl_messwerte = len(messwerte)
print(anzahl_messwerte) # 6
Datentyp der Liste
Mit der type
Funktion schauen wir uns den Datentyp einer Liste an:
# Liste definieren
messwerte = [85, 22, 34, 40, 25, 46]
# Datentyp der Liste mit der type() Funktion bestimmen
datentyp = type(messwerte)
print(datentyp) # <class 'list'>
Index
Die Elemente im Container haben eine Reihenfolge, nämlich die Reihenfolge, in der die Elemente eingefügt werden.
Jedes Element hat eine Position, die durch einen Index festgelegt wird:
Wichtig ist, dass die meisten Programmiersprachen nicht bei 1 anfangen zu zählen, sondern bei 0.
Auf die einzelnen Elemente kann man mit dem Index Operator [ ] zugreifen:
messwert_1 = messwerte[0]
print(messwert_1) # Ausgabe: 85
messwert_2 = messwerte[1]
print(messwert_2) # Ausgabe: 22
Negativer Index
Die Elemente werden nicht nur von vorne indiziert, sondern auch von hinten. Das letzte Element hat den Index -1, das vorletzte den Index -2, usw.
Damit kann man bequem auch an die hinteren Elemente ran, ohne zu wissen wie viele Elemente im Container sind:
letzter_messwert = messwerte[-1]
print(letzter_messwert) # Ausgabe: 46
vorletzter_messwert = messwerte[-2]
print(vorletzter_messwert) # Ausgabe: 25
Slicing
https://www.w3schools.com/python/python_strings_slicing.asp
Mit dem Index Operator können nicht nur auf einzelne Elemente, sondern auch auf Bereiche zugegriffen werden. Dazu übergibt man ein zweites Argument an den Index Operator, getrennt durch einen Doppelpunkt.
Start und Ende
[start:ende]
Der Bereich geht dann vom Start-Index bis zum End-Index, der End-Index ist aber ausgeschlossen.
Folgendes Bild verdeutlicht die Situation beim Slicing:
bereich = messwerte[2:5]
print(bereich) # [34, 40, 25]
Man kann den Start- oder End-Index weglassen, der default sind dann jeweils Start und Ende der Liste
Start-Index weglassen:
bereich = messwerte[:5]
print(bereich) # [85, 22, 34, 40, 25]
End-Index weglassen:
bereich = messwerte[3:]
print(bereich) # [40, 25, 46]
Schrittweite
Der Index Operator akzeptiert ein drittes Argument - die Schrittweite. Wird sie nicht angegeben, ist sie 1.
[start:ende:schrittweite]
Elemente mit geradem Index:
bereich = messwerte[::2]
print(bereich) # [85, 34, 25]
Elemente mit ungeradem Index:
bereich = messwerte[1::2]
print(bereich) # [22, 40, 46]
Listenfunktionen
Hier eine kleine Übersicht über die verschiedenen Funktionen, die man mit Listen verwenden kann:
Übungen
Übungsblatt 1: Anzeigen - Runterladen
Übung 2: Runterladen (zip)