Site x5

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:

1
1
2
2
3
3
4
4
5
5
6
6
85
85
22
22
34
34
40
40
25
25
46
46
0
0
1
1
2
2
3
3
4
4
5
5
So zählt Python
So zählt Python
So zählen Menschen
So zählen Menschen

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.

1
1
2
2
3
3
4
4
5
5
6
6
85
85
22
22
34
34
40
40
25
25
46
46
-6
-6
-5
-5
-4
-4
-3
-3
-2
-2
-1
-1

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:

0
0
1
1
2
2
3
3
4
4
5
5
6
6
22
22
34
34
40
40
1
1
2
2
3
3
4
4
5
5
6
6
1
1
2
2
3
3
4
4
5
5
25
25
46
46
85
85

bereich = messwerte[2:5]
print(bereich) # [34, 40, 25]
0
0
1
1
2
2
3
3
4
4
5
5
6
6
22
22
34
34
40
40
25
25
1
1
2
2
3
3
4
4
5
5
6
6
1
1
2
2
3
3
4
4
5
5
46
46
85
85

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]
0
0
1
1
2
2
3
3
4
4
5
5
6
6
22
22
34
34
40
40
25
25
1
1
2
2
3
3
4
4
5
5
6
6
1
1
2
2
3
3
4
4
5
5
46
46
85
85

End-Index weglassen:

bereich = messwerte[3:]
print(bereich) # [40, 25, 46]
0
0
1
1
2
2
3
3
4
4
5
5
6
6
22
22
34
34
40
40
25
25
1
1
2
2
3
3
4
4
5
5
6
6
1
1
2
2
3
3
4
4
5
5
46
46
85
85

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]
0
0
1
1
2
2
3
3
4
4
5
5
6
6
22
22
34
34
40
40
25
25
1
1
2
2
3
3
4
4
5
5
6
6
1
1
2
2
3
3
4
4
5
5
46
46
85
85

Elemente mit ungeradem Index:

bereich = messwerte[1::2]
print(bereich) # [22, 40, 46]
0
0
1
1
2
2
3
3
4
4
6
6
22
22
34
34
40
40
25
25
1
1
2
2
3
3
4
4
5
5
6
6
1
1
2
2
3
3
4
4
5
5
46
46
85
85
5
5

Listenfunktionen

Hier eine kleine Übersicht über die verschiedenen Funktionen, die man mit Listen verwenden kann:

Anzeigen

Übungen

Übungsblatt 1: Anzeigen - Runterladen

Übung 2: Runterladen (zip)

Übungen - Github