2.4. Listen#
Eine der wichtigsten Datenstrukturen im technischen und wissenschaftlichen Rechnen sind Listen. Später werden auch die damit verwandten Arrays eingeführt, welche diese in vielen numersichen Berechnungen ablösen werden.
Grundlagen und Beispiele#
Listen können explizit mit Hilfe der eckigen Klammern []
erstellt werden, z.B.:
l1 = [45, 33, 12, 93, 3]
Um strukturierte Listen zu erzeugen, kann die range
Funktion verwendet werden. Diese liefert zwar keine Liste zurück, das Ergebniss kann aber mit dem list
Befehl in eine Liste umgewandelt werden.
Im Allgemeinen kann die range
Funktion mit folgenden Argumenten aufgerufen werden:
stop
: erstes Element, welches nicht mehr Teil der Rückgabe iststart
: erstes Element der Rückgabestep
: Schrittweite, in welcher die Rückgabe, beistart
anfangend, erzeugt wird
Je nach Anzahl der Argumente, werden die nicht angegeben entsprechend gesetzt.
range(stop)
setztstart=0
undstep=1
,range(start, stop)
setztstep=1
, undrange(start, stop, step)
berücksichtig alle Angaben.
Eine umfangreichere Vorstellung der range
Funktion befindet sich in der Dokumentation.
Beispiele:
# Erstelle Liste von 0 bis 8
l2 = list(range(9))
print(l2)
[0, 1, 2, 3, 4, 5, 6, 7, 8]
# Erstelle Liste von 10 bis 154 in 12-er Schritten
l3 = list(range(10,155,12))
print(l3)
[10, 22, 34, 46, 58, 70, 82, 94, 106, 118, 130, 142, 154]
# Erstelle Liste von 20 bis -20 in 5-er Schritten
l4 = list(range(20, -21, -5))
print(l4)
[20, 15, 10, 5, 0, -5, -10, -15, -20]
Aufgabenteil A#
Verwenden Sie die range
Funktion um folgende Listen zu erzeugen:
[0, 1, 2, 3]
[0, 2, 4, 6, 8]
[15, 16, 17, 18]
[10, 9, 8, 7, 6, 5, 4]
[9, 5, 1]
Alle ungeraden Zahlen bis 50
Lösungsvorschlag#
Show code cell content
# zu 1:
l1 = list( range(4) )
print( l1 )
[0, 1, 2, 3]
Show code cell content
# zu 2:
l2 = list( range(0, 9, 2) )
print( l2 )
[0, 2, 4, 6, 8]
Show code cell content
# zu 3:
l3 = list( range(15, 19) )
print( l3 )
[15, 16, 17, 18]
Show code cell content
# zu 4:
l4 = list( range(10, 3, -1) )
print( l4 )
[10, 9, 8, 7, 6, 5, 4]
Show code cell content
# zu 5:
l5 = list( range(9, 0, -4) )
print( l5 )
[9, 5, 1]
Show code cell content
# zu 6:
l6 = list( range(1, 51, 2) )
print(l6)
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49]
Aufgabenteil B#
Erzeugen Sie Liste von 0 bis 10 mit der range
Funktion und speichern Sie diese in einer Variablen. Benutzen Sie ausschließlich die Methoden der Listenklasse um folgende Manipulationen durchzuführen. Geben Sie die Liste nach jeder Änderung aus.
Fügen Sie den Wert -11 am Ende der Liste ein.
Erweitern Sie die Liste um
[-22, 33, -44]
.Entfernen Sie das dritte und vierte Element der Liste.
Fügen Sie an dritter Stelle den Wert 0 ein.
Sortieren Sie die Liste.
Lösungsvorschlag#
Show code cell content
liste = list(range(11))
print(liste)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Show code cell content
# zu 1:
liste.append(-11)
print(liste)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, -11]
Show code cell content
# zu 2:
liste.extend( [-22, 33, -44] )
print(liste)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, -11, -22, 33, -44]
Show code cell content
# zu 3:
liste.pop(2)
print(liste)
[0, 1, 3, 4, 5, 6, 7, 8, 9, 10, -11, -22, 33, -44]
Show code cell content
# nochmals zu 3: das vorherige vierte Element ist durch den
# vorangegangen pop-Aufruf nun an dritter Stelle
liste.pop(2)
print(liste)
[0, 1, 4, 5, 6, 7, 8, 9, 10, -11, -22, 33, -44]
Show code cell content
# zu 4:
liste.insert(2, 0)
print(liste)
[0, 1, 0, 4, 5, 6, 7, 8, 9, 10, -11, -22, 33, -44]
Show code cell content
# zu 5:
liste.sort()
print(liste)
[-44, -22, -11, 0, 0, 1, 4, 5, 6, 7, 8, 9, 10, 33]