Direkt zum Hauptinhalt springen
eLearner.app
Modul 3 · Lektion 1 von 49/36 im Kurs~12 min
Lektionen des Moduls (1/4)

Listen

Eine Liste ist eine geordnete und veränderliche (mutable) Sequenz von Elementen. Sie ist die am häufigsten verwendete Datenstruktur in Python: Du erstellst eine mit [] und veränderst sie mit einer Reihe von Methoden, die man sich merken sollte.

Eine Liste erstellen

Python
vuota = []
numeri = [10, 20, 30]
mista = [1, "due", 3.0, True, None]    # verschiedene Typen: erlaubt, aber selten

Zugriff über Index und Slice

Indizes beginnen bei 0. Negative Indizes zählen von rechts:

Python
parole = ["a", "b", "c", "d"]
parole[0]    # 'a'
parole[-1]   # 'd'   (letztes)
parole[1:3]  # ['b', 'c']   slice [start:stop]
parole[::-1] # ['d', 'c', 'b', 'a']   umgekehrt

Ein Slice löst niemals einen IndexError aus: Wenn er außerhalb des Bereichs liegt, gibt er eine leere Teilliste zurück. Der direkte Zugriff wie parole[10] hingegen löst eine Ausnahme aus.

Eine Liste verändern

Python
nums = [1, 2, 3]
nums.append(4)         # [1, 2, 3, 4]    fügt am Ende hinzu
nums.insert(0, 0)      # [0, 1, 2, 3, 4] fügt an Position ein
nums.extend([5, 6])    # [0, 1, 2, 3, 4, 5, 6]   verbindet
nums.pop()             # 6   entfernt letztes Element
nums.pop(0)            # 0   entfernt erstes Element (langsamer: O(n))
nums.remove(3)         # entfernt das ERSTE Vorkommen von 3
nums[1] = 99           # ersetzt durch Index

Sortieren

Zwei Formen — es ist wichtig, sie zu unterscheiden:

Python
nums = [3, 1, 4, 1, 5, 9, 2, 6]
nums.sort()          # SORTIERT nums in-place, gibt None zurück
ordinati = sorted(nums)  # gibt eine NEUE Liste zurück, lässt nums unverändert
nums.sort(reverse=True)
sorted(nums, key=lambda n: -n)   # Sortierung nach Schlüssel

Länge, Mitgliedschaft, Iteration

Python
len(nums)              # wie viele Elemente
3 in nums              # True/False
for n in nums:
    print(n)

Eine Liste kopieren

a = b kopiert nicht — es erstellt nur einen zweiten Namen für dieselbe Liste. Um wirklich zu kopieren:

Python
copia = lista[:]            # vollständiger Slice
copia = list(lista)         # expliziter Konstruktor
copia = lista.copy()        # Methode

(Dies sind alles flache Kopien (shallow copies) — verschachtelte Elemente werden weiterhin geteilt.)

Listen kopieren: Achtung bei Referenzen

In Python erstellst du mit list_b = list_a keine Kopie: Du erstellst nur eine zweite Referenz. Das Ändern von list_b ändert auch list_a. Um eine echte, unabhängige Kopie zu erstellen, musst du list_b = list_a.copy() schreiben oder einen vollständigen Slice verwenden: list_b = list_a[:].

Probiere es aus

Übung#python.m3.l1.e1
Versuche: 0Wird geladen…

Gegeben sei die Liste `nums = [5, 2, 8, 1, 9, 3]`. Erstelle `first_three_sorted` mit den ersten drei Zahlen von nums in aufsteigender Reihenfolge sortiert. Modifiziere nums nicht.

Editor wird geladen…
Hinweis anzeigen

nums[:3] sind die ersten drei, dann sorted(...).

Lösung nach 3 Versuchen verfügbar

Wiederholungsübung

Übung#python.m3.l1.e2
Versuche: 0Wird geladen…

Füge ausgehend von `words = ['ciao']` am Ende 'mondo' hinzu und füge dann '!' am Anfang ein. Evaluiere `words`.

Editor wird geladen…
Hinweis anzeigen

append am Ende, insert(0, ...) am Anfang.

Lösung nach 3 Versuchen verfügbar

Zusätzliche Herausforderung

Übung#python.m3.l1.e3
Versuche: 0Wird geladen…

Gegeben sei die Liste `items = [10, 20, 30, 40]`. Verwende Slicing, um eine neue Liste `reversed_items` zu erstellen, die dieselben Elemente in umgekehrter Reihenfolge enthält. Evaluiere schließlich `reversed_items`.

Editor wird geladen…
Hinweis anzeigen

Slicing mit negativem Schritt ist [::-1]. Weise es reversed_items zu.

Lösung nach 3 Versuchen verfügbar