Programmierung mit Listen

Eine Möglichkeit, mehrere Werte zu einem zusammenzufassen, ist durch sogenannte Listen gegeben. In Python werden Listen1 durch eckige Klammern notiert, zwischen die die in Ihnen enthaltenen Werte durch Kommata getrennt geschrieben werden. Die folgenden Beispiele in der Python-Shell demonstrieren den Umgang mit Listen:

>>> [41, 42, 43]
[41, 42, 43]
>>> [41, 42] + [43]
[41, 42, 43]
>>> list = [41, 42, 43]
>>> list[0]
41
>>> list[2]
43
>>> list[0:2]
[41, 42]
>>> list[1:3]
[42, 43]
>>> for e in list:
...   print(e)
... 
41
42
43

Wir können also mehrere Zahlen in einer Liste zusammenfassen und ähnlich wie bei Zeichenketten Listen mit dem +-Operator verketten und auf einzelne gespeicherte Elemente über einen Index zugreifen.

Die Extraktion von Teil-Listen funktioniert genau wie bei den Zeichenketten mit [Startwert:Endwert], wobei der Endwert den Index des erste ll ist-Elementes bezeichnet, das nicht mehr extrahiert wird.

Wir können auch andere Werte als Zahlen in Listen speichern:

>>> strings = ['Hallo', 'Welt']
>>> bools = [True, False, True]
>>> lists = [[1,2,3], strings, bools, []]
>>> lists
[[1, 2, 3], ['Hallo', 'Welt'], [True, False, True], []]

Das letzte Beispiel zeigt, dass auch Listen selbst wieder Elemente von Listen sein können. Das letzte Element der definierten Liste lists ist dabei eine leere Liste, also eines ohne Einträge.

Wir können Listen verwenden, um zu berechnende Funktionswerte zum schnelleren Zugriff zu speichern. Zum Beispiel können wir eine Liste factorials anlegen, das alle Fakultäten von 0 bis 10 enthält:

factorials = [None] * 11

factorials[0] = 1

for i in range(1,11):
  factorials[i] = i * factorials[i-1]

Zunächst wird eine Liste der Länge 11 erzeugt und dabei alle Elemente als None initialisiert.

Danach wird mit einem sogenannten list-Update an der Position mit dem Index 0 der vorherige Wert mit 1 überschrieben.

Der Rumpf der Zählschleife enthält ein list-Update, mit dem der Wert an dem in der Variablen i gespeicherten Index überschrieben wird. Mit der Schleife werden so die Werte an den Indizes von 1 bis 10 überschrieben.

list-Updates ähneln Zuweisungen, allerdings steht bei ihnen links vom Gleichheitszeichen keine Variable, sondern es wird eine durch einen Index beschriebene Position in einer Liste referenziert.

Nach Ausführung des obigen Programms können wir die gespeicherten Fakultäten in der Liste factorials nachschlagen, statt sie immer wieder neu zu berechnen. Falls wir mehrfach auf dieselben Fakultäten zugreifen wollen, können wir deren wiederholte Berechnung also auf Kosten eines höheren Speicherbedarfs einsparen.


  1. In anderen Programmiersprachen werden Listen auch als dynamische Arrays bezeichnet. ↩︎