Zum Inhalt

Listen & Tuples 📋

In Python ermöglichen es uns Listen, mehrere Werte in einer einzigen Variablen zu speichern. Zum Beispiel: Wenn du das Alter aller Schüler einer Klasse speichern möchtest, kannst du das mit einer Liste tun.

Listen sind ähnlich wie Arrays in anderen Programmiersprachen – dynamische Arrays, die auch Elemente unterschiedlicher Datentypen speichern können.


Eine Python-Liste erstellen

Wir erstellen eine Liste, indem wir die Elemente in eckige Klammern [] schreiben und durch Kommas trennen.

# Eine Liste mit drei Elementen
ages = [19, 26, 29]
print(ages)

Ausgabe:

[19, 26, 29]

Hier hat die Liste ages drei Elemente.


Elemente verschiedener Typen in einer Liste

Python-Listen sind sehr flexibel – sie können auch Elemente verschiedener Datentypen enthalten:

# Eine Liste mit Strings, Zahlen und einer weiteren Liste
student = ['Jack', 32, 'Informatik', [2, 4]]
print(student)
# Eine leere Liste
empty_list = []
print(empty_list)

Eigenschaften von Listen

In Python sind Listen:

  • Geordnet (Ordered) – Die Reihenfolge der Elemente bleibt erhalten.
  • Veränderbar (Mutable) – Elemente können nach der Erstellung geändert werden.
  • Duplikate erlaubt (Allow duplicates) – Eine Liste kann doppelte Werte enthalten.

Zugriff auf Listenelemente

Jedes Element in einer Liste hat einen Index, der bei 0 beginnt.

Element Index
Erstes 0
Zweites 1
Drittes 2

Beispiel:

languages = ['Python', 'Swift', 'C++']

# Erstes Element
print('languages[0] =', languages[0])

# Drittes Element
print('languages[2] =', languages[2])

Ausgabe:

languages[0] = Python
languages[2] = C++

Negative Indizes

Listen unterstützen auch negative Indizes. Das letzte Element hat den Index -1, das vorletzte -2 usw.

languages = ['Python', 'Swift', 'C++']

# Letztes Element
print('languages[-1] =', languages[-1])

# Drittes Element von hinten
print('languages[-3] =', languages[-3])

Ausgabe:

languages[-1] = C++
languages[-3] = Python

Slicing (Teillisten)

Um einen Teil einer Liste zu erhalten, verwenden wir den Slicing-Operator :.

my_list = ['p', 'r', 'o', 'g', 'r', 'a', 'm']
print("my_list =", my_list)

# Elemente von Index 2 bis 4 (5 ist ausgeschlossen)
print("my_list[2:5] =", my_list[2:5])

# Elemente von Index 2 bis -2
print("my_list[2:-2] =", my_list[2:-2])

# Elemente von Index 0 bis 2
print("my_list[0:3] =", my_list[0:3])

Ausgabe:

my_list[2:5] = ['o', 'g', 'r']
my_list[2:-2] = ['o', 'g', 'r']
my_list[0:3] = ['p', 'r', 'o']

Start- und Endindex weglassen

Wenn du den Startindex weglässt, beginnt das Slicing am Anfang der Liste. Wenn du den Endindex weglässt, läuft es bis zum Ende.

my_list = ['p', 'r', 'o', 'g', 'r', 'a', 'm']

# Ab Index 5 bis zum Ende
print("my_list[5:] =", my_list[5:])

# Vom Anfang bis Index -4
print("my_list[:-4] =", my_list[:-4])

# Beide weggelassen → komplette Liste
print("my_list[:] =", my_list[:])

Ausgabe:

my_list[5:] = ['a', 'm']
my_list[:-4] = ['p', 'r', 'o']
my_list[:] = ['p', 'r', 'o', 'g', 'r', 'a', 'm']

Hinweis: Wenn du auf einen Index zugreifst, der nicht existiert, löst Python einen IndexError aus.


Elemente zu einer Liste hinzufügen

Listen sind veränderbar, d. h. du kannst sie nachträglich ändern.

Am Ende hinzufügen mit append()

fruits = ['apple', 'banana', 'orange']
print('Originale Liste:', fruits)

fruits.append('cherry')
print('Aktualisierte Liste:', fruits)

Ausgabe:

Originale Liste: ['apple', 'banana', 'orange']
Aktualisierte Liste: ['apple', 'banana', 'orange', 'cherry']

An bestimmter Position einfügen mit insert()

fruits = ['apple', 'banana', 'orange']
print("Originale Liste:", fruits)

fruits.insert(2, 'cherry')
print("Aktualisierte Liste:", fruits)

Ausgabe:

Originale Liste: ['apple', 'banana', 'orange']
Aktualisierte Liste: ['apple', 'banana', 'cherry', 'orange']

Elemente aus anderen Iterables hinzufügen mit extend()

numbers = [1, 3, 5]
even_numbers = [2, 4, 6]

# Elemente von even_numbers an numbers anhängen
numbers.extend(even_numbers)
print('Aktualisierte Liste:', numbers)

Ausgabe:

Aktualisierte Liste: [1, 3, 5, 2, 4, 6]

Elemente ändern

colors = ['Red', 'Black', 'Green']
print('Originale Liste:', colors)

# Erstes Element ändern
colors[0] = 'Purple'

# Drittes Element ändern
colors[2] = 'Blue'

print('Aktualisierte Liste:', colors)

Ausgabe:

Originale Liste: ['Red', 'Black', 'Green']
Aktualisierte Liste: ['Purple', 'Black', 'Blue']

Elemente entfernen

Nach Wert löschen mit remove()

numbers = [2, 4, 7, 9]
numbers.remove(4)
print(numbers)

Ausgabe:

[2, 7, 9]

Nach Index oder Bereich löschen mit del

names = ['John', 'Eva', 'Laura', 'Nick', 'Jack']

# Element an Index 1 löschen
del names[1]
print(names)

# Elemente von Index 1 bis 2 löschen
del names[1:3]
print(names)

# Ganze Liste löschen
del names

Ausgabe:

['John', 'Laura', 'Nick', 'Jack']
['John', 'Jack']
NameError: name 'names' is not defined

Länge einer Liste

Mit der Funktion len() kannst du die Anzahl der Elemente ermitteln:

cars = ['BMW', 'Mercedes', 'Tesla']
print('Gesamtanzahl:', len(cars))

Ausgabe:

Gesamtanzahl: 3

Durch eine Liste iterieren

fruits = ['apple', 'banana', 'orange']

for fruit in fruits:
    print(fruit)

Ausgabe:

apple
banana
orange

Wichtige Methoden von Python-Listen

Methode Beschreibung
append() Fügt ein Element am Ende hinzu
extend() Hängt mehrere Elemente (aus z. B. einer anderen Liste) an
insert() Fügt ein Element an einer bestimmten Position ein
remove() Entfernt das erste Vorkommen eines Werts
pop() Gibt ein Element zurück und entfernt es anhand seines Index
clear() Löscht alle Elemente aus der Liste
index() Gibt den Index des ersten Vorkommens eines Werts zurück
count() Zählt, wie oft ein bestimmtes Element vorkommt
sort() Sortiert die Liste auf- oder absteigend
reverse() Kehrt die Reihenfolge der Elemente um
copy() Erstellt eine flache Kopie der Liste

Weiterführende Themen

  • list() – Konvertiert andere Datentypen in eine Liste
  • List Comprehension – Eine kompakte Art, Listen zu erstellen
  • enumerate() – Fügt beim Iterieren einen Zähler hinzu

Unterschied zu Tuples

Neben Listen gibt es in Python auch Tuples (auf Deutsch: Tupel). Sie ähneln Listen sehr stark, haben aber einen wichtigen Unterschied:

🔒 Tuples sind unveränderlich (immutable) — einmal erstellt, können ihre Elemente nicht geändert, hinzugefügt oder entfernt werden.


Erstellung eines Tuples

Ein Tuple wird mit runden Klammern () erstellt:

# Ein Tuple mit drei Elementen
numbers = (10, 20, 30)
print(numbers)

Ausgabe:

(10, 20, 30)

Ein Tuple kann – genau wie eine Liste – auch verschiedene Datentypen enthalten:

student = ('Lisa', 23, 'Biologie', [1.3, 1.7])
print(student)

Zugriff auf Tuple-Elemente

Der Zugriff funktioniert genauso wie bei Listen über den Index:

languages = ('Python', 'Java', 'C++')

print(languages[0])   # Erstes Element
print(languages[-1])  # Letztes Element

Ausgabe:

Python
C++

Länge eines Tuples

Auch hier kannst du mit len() die Anzahl der Elemente bestimmen:

animals = ('Hund', 'Katze', 'Vogel')
print(len(animals))

Ausgabe:

3

Versuch, ein Tuple zu ändern

Tuples sind unveränderlich – jede Änderung führt zu einem Fehler:

colors = ('Rot', 'Grün', 'Blau')
colors[0] = 'Gelb'   # ❌ Fehler!

Ausgabe:

TypeError: 'tuple' object does not support item assignment

Warum Tuples verwenden?

Tuples sind nützlich, wenn du feste Daten speichern möchtest, die sich nicht ändern sollen, z. B.:

  • Wochentage
  • Koordinaten (x, y)
  • Konstanten-Werte

Beispiel:

days = ('Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag')

Vergleich: Liste vs. Tuple

Eigenschaft Liste (list) Tuple (tuple)
Klammern [] ()
Veränderbar ✅ Ja ❌ Nein
Geschwindigkeit Etwas langsamer Etwas schneller
Typisch verwendet für Daten, die sich ändern Feste Daten

💡 Merke: - Wenn du Daten speichern willst, die sich nicht ändern dürfen, verwende ein Tuple. - Wenn du Daten bearbeiten, hinzufügen oder löschen möchtest, verwende eine Liste.