Wiki: Mathe und Info

Unterrichtsmaterialien für Mathematik und Informatik

Benutzer-Werkzeuge

Webseiten-Werkzeuge


info:sek-ii:e2:listen-arrays:start

Listen und Arrays

Häufig erfordert es ein Programm, dass mehrere Werte gleichzeitig gespeichert werden. Hierfür gibt es zwei Konzepte, die sehr ähnlich sind sich jedoch in gewissen Details unterscheiden.

Arrays

Eine anschauliche Art sich ein Array vorzustellen ist eine Tabelle. Eine Tabelle, wie z.B. in Excel hat im einfachsten Fall nur eine Zeile. In diesem Fall reicht die Angabe der Spalte um klar zu sagen, welche Daten gemeint sind.

Beispiel Einkaufsliste:

Adresse 0 1 2 3 4
Daten Brot Butter Schokocreme Saure Gurken Senf
Quiz zu Lektion 1 - Der Hamster lernt laufen
2020-07-31 10:35

Häufig haben Tabellen mehr als eine Zeile. In diesem Fall benötigt man zur genauen Adressierung eine Information sowohl über die Zeile als auch die Spalte.

Beispiel 1 - Adressierung:

[0] [1] [2] [3] $\cdots$
[0] [0][1]
[1] [1][3]
[2] [2][1]
$\vdots$
Der Index bei Arrays und Listen ist immer 0-basiert, beginnt also mit 0. Dadurch ist die Länge eines Arrays oder einer Liste auch stets um eins größer als der höchste Index. Dies ist eine sehr häufige Fehlerquelle.

In der Programmierung wird bei Arrays immer zuerst die Zeile und dann die Spalte angegeben. Einige Beispiele sind oben entsprechend beschriftet.

Zur Übung folgt nun ein Beispiel:

Beispiel 2 - Übung

[0] [1] [2] [3] [4]
[0] Hammer of Doom Handtuch (sollte man immer dabei haben)
[1] Küchenmesser der Geselligkeit
[2] Fläschchen mit den Tränen meiner Erzfeinde epischer Windbeutel
[3] Mäusefalle des ewigen Käses  (Weber  Spezial)
Quiz zu Lektion 1 - Der Hamster lernt laufen
2020-07-31 10:35

Charakteristische Eigenschaften eines Arrays

  • Ein Array belegt einen festen Bereich im Arbeitsspeicher. Durch diese fixe Adressierung ist ein sehr effizienter Zugriff auf die Daten in einem Array möglich.
  • Durch die fixe Speicheradressierung ist ein Array nicht dymanisch erweiterbar. Wenn der Platz in einem Array zur Laufzeit des Programms nicht mehr ausreicht ist es nicht ohne weiteres möglich das Array zu vergrößern.

Syntax von Arrays

Wenn in einer Programmiersprache eckige Klammern verwendet werden ([]), deutet dies häufig auf die Verwendung von Arrays oder Listen hin.

Python

Python verfügt nativ nicht über Arrays. In Python werden Datensammlungen meist über Listen verwaltet.

Java

FIXME

Listen

Listen gibt es in der Programmierung sehr häufig. Bei Listen werden Daten zu einer Einheit zusammengefasst. Häufig werden hierbei Daten gleichen Typs verwendet, je nach Implementierung können aber auch Daten unterschiedlichen Typs gespeichert werden. Im Unterschied zu einem Array sind Daten in einer Liste nicht in einem fixen Bereich des Arbeitsspeichers gelagert sondern können an beliebigen Stellen liegen. Dadurch sind sie in der Benutzung flexibler und können dynamisch erweitert werden. Als Nachteil ergibt sich hier eine geringere Performance als bei Arrays.

Aufbau einer Liste

Listen arbeiten durch Zeiger auf andere Listenelemente. Ein Element verweist hier stets auf das nachfolgende Element. In der folgenden Abbildung ist dies anhand einer Liste von Zahlen verdeutlicht. Hier sind nacheinander die Zahlen 4, 3, 7 usw. in einer Liste zusammengefügt. Die 4 "kennt" die Adresse ihres Nachfolgers, der 3. Die 3 wiederrum verfügt nicht über die Adresse der 4. In diesem Fall nennt man die Liste einfach verkettet, da immer nur die Nachfolger bekannt sind. Bei einer erweiterten Form wird in jedem Listenelement auch die Adresse des Vorgängers gespeichert, dann liegt eine doppelt verkettete Liste vor. Der Zugriff auf Elemente der Liste erfolgt, wie bei Arrays auch, über den Index des Elements. Im hier angegebenen Beispiel würde z.B. die Zuweisung

nummer = zahlen[2]

der Variable nummer den Wert 7 zuweisen.

Yannik Wehr 2020/05/26 19:56

Syntax

Python

Anlegen einer Liste

liste_mit_Werte = [3, 4, 2, 1, 6]
liste_ohne_Werte = []

Zugriff auf ein Listenelement

liste = [3, 4, 2, 1, 6]
zahl_a = liste[0]
zahl_b = liste[3]

Hier wird zahl_a den Wert 3 haben und zahl_b den Wert 1.

Werte einer Liste verändern

liste = [3, 4, 2, 1, 6]
liste[0] = 9

Nach der hier abgebildeten Zuweisung enthält die Liste die Werte [9, 4, 2, 1, 6].

Ein Element anhängen

liste = [3, 4, 2, 1, 6]
liste.append(42)

Nach dem hier abgebildeten Code enthält die Liste die Werte [9, 4, 2, 1, 6, 42].

Weitere Funktionen

Neben den hier erläuterten Befehlen verfügt die Liste in Python über weitere Funktionen. Diese können z.B. hier nachgeschlagen werden.

Java

FIXME

info/sek-ii/e2/listen-arrays/start.txt · Zuletzt geändert: 2020-07-31 10:56 von christian.weber