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 ist

  • start: erstes Element der Rückgabe

  • step: Schrittweite, in welcher die Rückgabe, bei start anfangend, erzeugt wird

Je nach Anzahl der Argumente, werden die nicht angegeben entsprechend gesetzt.

  • range(stop) setzt start=0 und step=1,

  • range(start, stop) setzt step=1, und

  • range(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:

  1. [0, 1, 2, 3]

  2. [0, 2, 4, 6, 8]

  3. [15, 16, 17, 18]

  4. [10, 9, 8, 7, 6, 5, 4]

  5. [9, 5, 1]

  6. Alle ungeraden Zahlen bis 50

Lösungsvorschlag#

Hide code cell content
# zu 1:
l1 = list( range(4) )
print( l1 )
[0, 1, 2, 3]
Hide code cell content
# zu 2:
l2 = list( range(0, 9, 2) )
print( l2 )
[0, 2, 4, 6, 8]
Hide code cell content
# zu 3:
l3 = list( range(15, 19) )
print( l3 )
[15, 16, 17, 18]
Hide code cell content
# zu 4:
l4 = list( range(10, 3, -1) )
print( l4 )
[10, 9, 8, 7, 6, 5, 4]
Hide code cell content
# zu 5:
l5 = list( range(9, 0, -4) )
print( l5 )
[9, 5, 1]
Hide 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.

  1. Fügen Sie den Wert -11 am Ende der Liste ein.

  2. Erweitern Sie die Liste um [-22, 33, -44].

  3. Entfernen Sie das dritte und vierte Element der Liste.

  4. Fügen Sie an dritter Stelle den Wert 0 ein.

  5. Sortieren Sie die Liste.

Lösungsvorschlag#

Hide code cell content
liste = list(range(11))
print(liste)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Hide code cell content
# zu 1:
liste.append(-11)
print(liste)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, -11]
Hide 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]
Hide code cell content
# zu 3:
liste.pop(2)
print(liste)
[0, 1, 3, 4, 5, 6, 7, 8, 9, 10, -11, -22, 33, -44]
Hide 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]
Hide 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]
Hide code cell content
# zu 5:
liste.sort()
print(liste)
[-44, -22, -11, 0, 0, 1, 4, 5, 6, 7, 8, 9, 10, 33]