Eine Liste speichert mehrere Werte in einer festen Reihenfolge. Sie steht in eckigen Klammern, die Elemente sind durch Kommas getrennt. Listen sind veränderlich und dürfen Werte verschiedener Typen mischen.
einkauf = ["Brot", "Milch", "Eier"]
zahlen = [3, 1, 4, 1, 5]
gemischt = ["Text", 42, 3.14, True]
leer = []
print(einkauf)
print(len(einkauf))
print(type(gemischt))['Brot', 'Milch', 'Eier'] 3 <class 'list'>
Auf Elemente zugreifen
Wie bei Texten zählt der Index ab 0, negative Indizes zählen von hinten:
einkauf = ["Brot", "Milch", "Eier", "Käse"]
print(einkauf[0])
print(einkauf[2])
print(einkauf[-1])
print(einkauf[1:3])Brot Eier Käse ['Milch', 'Eier']
Ein Index außerhalb der Liste löst einen IndexError aus:
print(einkauf[10])Traceback (most recent call last):
File "beispiel.py", line 2, in <module>
print(einkauf[10])
IndexError: list index out of rangeElemente ändern, hinzufügen, entfernen
l = ["a", "b", "c"]
l[1] = "B" # ändern
l.append("d") # hinten anhängen
l.insert(0, "start") # an Position einfügen
print(l)
l.remove("c") # ersten passenden Wert entfernen
letztes = l.pop() # letztes Element entfernen und zurückgeben
print(letztes, l)
del l[0] # nach Index löschen
print(l)['start', 'a', 'B', 'c', 'd'] d ['start', 'a', 'B'] ['a', 'B']
Listen verbinden und prüfen
a = [1, 2]
b = [3, 4]
print(a + b)
print(a * 3)
print(3 in b)
print(len(a + b))[1, 2, 3, 4] [1, 2, 1, 2, 1, 2] True 4
Listen durchlaufen
for frucht in ["Apfel", "Birne"]:
print(frucht.upper())
summe = 0
for z in [4, 8, 15, 16, 23, 42]:
summe += z
print("Summe:", summe, "– Durchschnitt:", summe / 6)APFEL BIRNE Summe: 108 – Durchschnitt: 18.0
Für Summe, Minimum und Maximum gibt es eingebaute Funktionen:
werte = [4, 8, 15, 16, 23, 42]
print(sum(werte), min(werte), max(werte), len(werte))108 4 42 6
Listen sind veränderlich: Vorsicht beim Kopieren
Eine Zuweisung kopiert nicht die Liste, sondern nur den Verweis darauf:
a = [1, 2, 3]
b = a # b zeigt auf dieselbe Liste
b.append(4)
print(a) # a hat sich mit verändert!
c = a.copy() # echte (flache) Kopie
c.append(5)
print(a, c)[1, 2, 3, 4] [1, 2, 3, 4] [1, 2, 3, 4, 5]
Merke
- Liste:
[a, b, c], geordnet, veränderlich, beliebige Typen - Zugriff über Index (ab 0, negativ von hinten), Ausschnitte mit
[von:bis] append,insert,remove,pop,deländern die Liste+verbindet,*wiederholt,inprüft,len,sum,min,maxb = akopiert nicht: für eine Kopiea.copy()odera[:]
Aufgabe
Lege eine Liste mit fünf Zahlen an, hänge eine sechste an, entferne die erste und gib Liste, Summe und Durchschnitt aus.