Hallo und Herzlich Willkommen =)
In dieser Lektion wirst du lernen wie du mit Listen in Python arbeiten kannst.
 
Eine Liste kannst du dir als eine Sammlung von Elementen vorstellen.
Listen in Python haben den Datentyp „list“ und du erkennst sie an der Syntax mit eckigen Klammern [].
 
listeLeer = []
print(listeLeer)
print(type(listeLeer))
 
### ERGEBNIS / AUSGABE ###
[]
<class 'list'> 
 
Die Elemente, aus denen eine Liste besteht, können von jedem beliebigen Datentyp sein.
 
listeVonStrings = ["a", "b", "c"]
print(listeVonStrings)
listeVonIntegers = [9, 21, 0, 1, 2, 3, 4, 5, 6, 7]
print(listeVonIntegers)
listeVonFloats = [1.1, 2.2, 3.3, 4.4, 5.5]
print(listeVonFloats)
listeVonListen = [[1, 3], [3, 7]] # Auch als Array bekannt
print(listeVonListen)
 
### ERGEBNIS / AUSGABE ###
['a', 'b', 'c']
[9, 21, 0, 1, 2, 3, 4, 5, 6, 7]
[1.1, 2.2, 3.3, 4.4, 5.5]
[[1, 3], [3, 7]]
 
Um Listen zu erstellen musst du nicht zwangsläufig alle Elemente manuell eingeben.
Ein einfacher Weg zur Erstellung von großen Listen ist die Verwendung einer for Schleife, oder die kompakte Schreibweise der for Schleife als List Comprehension.
 
Zum Arbeiten mit Listen gibt es eine ganze Reihe an Funktionen.
Auch hier möchte ich dir davon abraten, dir die Mühe zu machen alle Funktionen auswendig zu lernen.
Es ist vor allem wichtig, dass du weißt welche Funktionalitäten existieren und wie sie funktionieren, die genaue Syntax kannst du jederzeit wieder nachschauen oder googlen.
 
Zuerst möchte ich dir zeigen, wie du neue Elemente zu deiner Liste hinzufügen kannst.
 
listeVonIntegers.append(9)      # Element an Ende der Liste anhängen
print(listeVonIntegers)
listeVonIntegers.insert(2, 8)   # Element an indizierte Stelle der Liste anhängen liste.append(Element, Index)
print(listeVonIntegers)
print(listeVonIntegers + [10, 11, 12, 13])       # Listen verknüpfen
 
### ERGEBNIS / AUSGABE ###
[9, 21, 0, 1, 2, 3, 4, 5, 6, 7, 9]
[9, 21, 8, 0, 1, 2, 3, 4, 5, 6, 7, 9]
[9, 21, 8, 0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13] 
 
Wenn du sehen möchtest welche Elemente sich in deiner Liste befinden kannst du dir entweder die gesamte Liste anschauen oder mit Slicing auf bestimmte Teile aus deiner Liste zugreifen und sie anpassen.
 
print(listeVonIntegers[0])      # erstes Element
listeVonIntegers[0] = 99       # Überschreibt den Wert an der Stelle mit Index 0 mit dem Wert 99
print(listeVonIntegers[0])
print(listeVonIntegers[-1])     # letztes Element
print(listeVonIntegers[2])      # Element an indizierter Stelle (3. Element)
print(listeVonIntegers[1:3])   # Elemente von Start (einschließlich) bis Ende (ausschließlich)
print(listeVonIntegers[:3])     # Elemente von Start bis Ende (ausschließlich)
print(listeVonIntegers[2:])     # Elemente von Start (einschließlich) bis Ende
 
### ERGEBNIS / AUSGABE ###
9
99
9
8
[21, 8]
[99, 21, 8]
[8, 0, 1, 2, 3, 4, 5, 6, 7, 9] 
 
Die Slicing Syntax lässt sich auch noch um die gewünschte Schrittweite erweitern.
Für meinen persönlichen Geschmack macht das das ganze schon deutlich komplexer und schwerer zu verstehen, du solltest es aber wenigstens einmal gesehen haben, um im Zweifelsfall zu verstehen was dabei passiert.
 
print(listeVonIntegers[::1])        # gibt jedes Element einer Liste zurück
print(listeVonIntegers[::2])        # gibt jedes zweite Element einer Liste zurück
print(listeVonIntegers[::-1])       # gibt jedes Element einer Liste in umgekehrter Reihenfolge zurück
print(listeVonIntegers[1:-1:2])     # gibt jedes zweite Element zwischen dem zweiten und letzten (ausschließlich) zurück
 
### ERGEBNIS / AUSGABE ###
[99, 21, 8, 0, 1, 2, 3, 4, 5, 6, 7, 9]
[99, 8, 1, 3, 5, 7]
[9, 7, 6, 5, 4, 3, 2, 1, 0, 8, 21, 99]
[21, 0, 2, 4, 6] 
 
Ebenso interessant ist es natürlich, auch Elemente aus deiner Liste entfernen zu können.
 
listeVonIntegers.remove(7)                      # erstes Element mit Wert 7 entfernen
print(listeVonIntegers)
listeVonIntegers.remove(listeVonIntegers[1])    # Element mit Index 1 entfernen
print(listeVonIntegers)
print(listeVonIntegers.pop())                 # entfernt und gibt das letzte Element der Liste zurück
print(listeVonIntegers)
 
### ERGEBNIS / AUSGABE ###
[99, 21, 8, 0, 1, 2, 3, 4, 5, 6, 9]
[99, 8, 0, 1, 2, 3, 4, 5, 6, 9]
9
[99, 8, 0, 1, 2, 3, 4, 5, 6] 
 
Wie du bereits kennengelernt hast, gibt es einige Python Standard Funktionen mit denen du interessante Kennzahlen von Zahlenreihen – sprich Listen aus Zahlen – abfragen kannst.
 
print(len(listeVonIntegers))                              # Anzahl der Elemente
print(min(listeVonIntegers))                             # Minimalwert
print(max(listeVonIntegers))                            # Maximalwert
print(sum(listeVonIntegers))                            # Summe
print(statistics.mean(listeVonIntegers))         # Durchschnitt
print(statistics.median(listeVonIntegers))      # Median
print(statistics.stdev(listeVonIntegers))         # Standardabweichung
print(statistics.variance(listeVonIntegers))    # Varianz
 
### ERGEBNIS / AUSGABE ###
9
0
99
128
14.222222222222221
4
31.889566388467003
1016.9444444444443 
 
Weitere, äußerst nützliche Methoden, die du auf eine Liste anwenden kannst, sind:
 
print(listeVonIntegers.index(2))    # gibt Index von erstem Element mit Wert 2 zurück
print(listeVonIntegers.count(99))    # gibt Anzahl von Elementen mit Wert 99 zurück
listeVonIntegers.sort()             # sortiert Elemente der Liste (aufsteigend)
print(listeVonIntegers)
listeVonIntegers.reverse()          # kehrt Reihenfolge der Elemente in der Liste um
print(listeVonIntegers)
 
### ERGEBNIS / AUSGABE ###
4
1
[0, 1, 2, 3, 4, 5, 6, 8, 99]
[99, 8, 6, 5, 4, 3, 2, 1, 0]
 
Wenn du einmal mit großen Listen arbeitest und bestimmte Elemente darin suchst kann dir das Sortieren enorm viel Zeit sparen.
Mehr dazu schauen wir uns später in der Lektion zur Code Optimierung an.
 
Wenn du deine Liste durchsuchen möchtest, um zu prüfen ob ein bestimmtes Element darin enthalten ist, kannst du dafür das „in“ Schlüsselwort nutzen.
 
print(21 in listeVonIntegers)
print(0 in listeVonIntegers)
 
### ERGEBNIS / AUSGABE ###
False
True 
 
Um jedes einzelne Element einer Liste zu durchlaufen kannst du eine for Schleife nutzen.
 
for element in listeVonIntegers:
            print(element)
 
### ERGEBNIS / AUSGABE ###
99
8

1
0
 
Hierbei solltest du beachten, dass du nicht anfängst die Elemente deiner Liste zu ändern (zum Beispiel zu löschen), während du darüber iterierst.
In diesem Fall solltest du lieber vorher eine Kopie erstellen.
 
Beim Kopieren der Liste gibt es eine letzte Feinheit, die du kennen solltest.
Und zwar den Unterschied, ob du beim Kopieren einer Liste tatsächlich eine zweite Liste, oder nur eine Referenz auf die erste Liste erstellst.
 
print(listeVonIntegers)
 
# 1) Referenz auf bereits bestehende Liste erstellen
kopierteListe = listeVonIntegers
kopierteListe.append(99)
print(kopierteListe)
print(listeVonIntegers)
 
# 2) Kopie einer bereits bestehenden Liste erstellen
kopierteListe2 = listeVonIntegers[:]
kopierteListe2.append(77)
print(kopierteListe2)
print(listeVonIntegers)
 
### ERGEBNIS / AUSGABE ###
[99, 8, 6, 5, 4, 3, 2, 1, 0]
[99, 8, 6, 5, 4, 3, 2, 1, 0, 99]
[99, 8, 6, 5, 4, 3, 2, 1, 0, 99]
[99, 8, 6, 5, 4, 3, 2, 1, 0, 99, 77]
[99, 8, 6, 5, 4, 3, 2, 1, 0, 99] 
 
Listen sind eine sehr wichtige und häufig genutzte Datenstruktur in Python, deshalb zögere bitte nicht mich zu fragen falls du in dieser Lektion Probleme hattest oder etwas unklar ist.
Wenn du verstanden hast was Listen sind und die wichtigsten Funktionalitäten am besten kurz selber ausprobiert hast, dann gratuliere ich dir zum nächsten erfolgreichen Schritt und freue mich schon sehr darauf dich gleich in der nächsten Lektion wiederzusehen =)