Skip to main content

Listen

Genau wie Tupel werden Listen benutzt, um eine Sequenz von Elementen zu speichern. Der grosse Unterschied ist aber, dass wir bei Listen nicht im Voraus wissen müssen, wieviele Elemente in der Sequenz gespeichert werden sollen. Listen können nämlich dynamisch wachsen. Ausserden haben wir bei Listen, im Gegensatz zu Tupeln, die Möglichkeit Listenelemente zu verändern.

Erzeugen von Listen

Genau wie Tupel, erzeugen wir Listen, indem wir die einzelnen Werte, die wir speichern wollen, durch Komma getrennt, angeben. Wir umschliessen die Elemente aber mit eckigen [ ] statt runden ( ) Klammern:

[1, 2, 3, 4]                    # Liste von Zahlen
["first", "second", "third"] # Liste von Strings
[1.0, "text", true] # Gemischte Liste
[] # Leere Liste
[[1, 1], [2, 2], [3, 3]] # Liste von Listen
[(1, 1), (2, 2), (3, 3)] # Liste von Tupeln

Für längere Sequenzen wird das Erzeugen von der ganzen Liste auf einmal durch explizites angeben der Elemente sehr mühsam. In solchen Fällen können wir eine leere Liste erzeugen und Elemente dynamisch hinzuzufügen. Oft werden wir die gewünschte Anzahl Elemente dann in einer Schleife hinzufügen.

Anhängen von Elementen an eine Liste

Um Elemente an eine Liste anzuhängen, stellt uns die Liste die Operation append(element) zur Verfügung. Angenommen, die Variable l entspricht einer Liste. Um das Element mit dem Wert 1 an die Liste anzuhängen, schreiben wir l.append(1). Dieses wird dann am Ende der Liste hinzugefügt. Entsprechend können wir mit folgendem Code eine Liste mit den Zahlen von 0 bis 9 erzeugen.

Verändern von Elementen in der Liste

Im Unterschied zu Tupeln, die nach der Erzeugung unveränderbar sind, können wir einzelnen Elementen in einer Liste verändern. Dafür greifen wir wie üblich auf ein Element zu, und weisen diesem einen neuen Wert zu. Dies ist im folgenden Code demonstriert:

Weitere wichtige Listenoperationen

Python stellt uns viele weitere nützliche Operationen zur Verfügung, um mit Listen zu arbeiten. Die wichtigsten davon sind in folgender Tabelle zusammengefasst und werden im Video nochmals erklärt.

OperationBeschreibungBeispiellaufruf für Liste l
lenLänge der Listen = len(l)
sortedGibt neue Liste mit sortierten Elementen zurücks = sorted(l)
insertFügt neues Element e an Stelle l[i] hinzul.insert(i, e)
popEntfernt Element an Stelle il.pop(i)
+Aneinanderhängen von zwei Listen l1 und l2l1 + l2
*Aneinanderhängen der Liste n mall * n
inErmittelt, ob ein gegebenes Element in der Liste vorhanden ist 5 in [1, 2, 3, 4, 5]

Zu beachten:

  • Die Stellen in einer Liste werden beginnend mit 0 indiziert, d.h. 0 bezeichnet das erste Element.
  • len und sorted sind Funktionen die auf den Listen arbeiten. Die übergebene Liste wird nicht verändert, sondern das Resultat wird als neues Objekt zurückgegeben. Dahingegen sind insert und pop Operation, die die Liste direkt verändern. Diese Operationen werden Methoden genannt. Wir werden uns Methoden beim Thema Klassen genauer anschauen.

Experimente

  • Was passiert, wenn Sie in einer Liste auf Elemente mit negativem Index (also einem Index mit Wert zwischen -1 bis -len(liste)) zugreifen?
  • Können Sie die Listenelemente wie bei Tupeln mittels unpacking direkt verschiedenen Variablen zuweisen?
  • Definieren Sie sich eine Liste von drei Listen. Die erste innere Liste soll 1,2,3 als Elemente haben, die zweite 4,5,6 und die dritte 7,8,9. Geben Sie die Elemente der Liste dann mithilfe von zwei verschachtelten Schleifen aus. Die Ausgabe soll über drei Zeilen dann so aussehen:
    1 2 3
    4 5 6
    7 8 9
  • Wenn Sie eine Liste von Listen haben, müssen alle inneren Listen dann immer dieselbe Anzahl Elemente speichern?

Fragen und Kommentare

Haben Sie Fragen oder Kommentare zu diesem Artikel? Nutzen Sie das Forum und helfen Sie sich und Ihren Mitstudierenden dieses Thema besser zu verstehen.