Programmierung mit Arrays

Eine Möglichkeit, mehrere Werte zu einem zusammenzufassen, ist durch sogenannte Felder oder Arrays gegeben. In Python werden Arrays1 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 Arrays:

>>> [41, 42, 43]
[41, 42, 43]
>>> [41, 42] + [43]
[41, 42, 43]
>>> array = [41, 42, 43]
>>> array[0]
41
>>> array[2]
43
>>> array[0:2]
[41, 42]
>>> array[1:3]
[42, 43]
>>> for index in range(0, len(array)):
...   print(array[index])
... 
41
42
43

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

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

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

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

Das letzte Beispiel zeigt, dass auch Arrays selbst wieder Elemente von Arrays sein können. Das letzte Element des definierten Feldes arrays ist dabei ein leeres Feld, also eines ohne Einträge.

Wir können Arrays verwenden, um zu berechnende Funktionswerte zum schnelleren Zugriff zu speichern. Zum Beispiel können wir ein Feld 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 ein Array der Länge 11 erzeugt und dabei alle Elemente als None initialisiert.

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

Der Rumpf der Zählschleife enthält ein Array-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.

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

Nach Ausführung des obigen Programms können wir die gespeicherten Fakultäten in dem Feld 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. Die Bezeichnung Array wird in diesem Skript aus anderen Programmiersprachen übernommen, obwohl die Datenstruktur in Python eigentlich als list bezeichnet wird. Sie steht als vordefinierter Typ zur Verfügung. Darüber hinaus gibt es Module, die einen Datentyp Array definieren und damit eine ähnliche, für bestimmte Operationen effizientere, Implementation von Feldern bereitstellen. ↩︎