Listen haben viele praktische Methoden. Die meisten verändern die Liste direkt und geben None zurück. Das ist ein häufiger Stolperstein: liste = liste.sort() setzt die Liste auf None!
Die wichtigsten Methoden
| Methode | Wirkung |
|---|---|
append(x) | hängt x hinten an |
extend(andere) | hängt alle Elemente von andere an |
insert(i, x) | fügt x an Position i ein |
remove(x) | entfernt das erste x |
pop(i) | entfernt und liefert Element i (Standard: letztes) |
clear() | leert die Liste |
index(x) | Position des ersten x |
count(x) | wie oft x vorkommt |
sort() | sortiert die Liste |
reverse() | kehrt die Reihenfolge um |
copy() | flache Kopie |
l = [5, 2, 9, 2]
l.extend([7, 1])
print(l)
print(l.count(2), l.index(9))
l.reverse()
print(l)
l.clear()
print(l)[5, 2, 9, 2, 7, 1] 2 2 [1, 7, 2, 9, 2, 5] []
Sortieren
sort() sortiert die Liste an Ort und Stelle, sorted() liefert eine neue sortierte Liste und lässt das Original unverändert:
zahlen = [5, 2, 9, 1]
print(sorted(zahlen))
print(zahlen) # unverändert
zahlen.sort(reverse=True)
print(zahlen)[1, 2, 5, 9] [5, 2, 9, 1] [9, 5, 2, 1]
Mit dem Parameter key bestimmst du, wonach sortiert wird:
woerter = ["Banane", "Kiwi", "Apfel", "Zitrone"]
print(sorted(woerter))
print(sorted(woerter, key=len))
print(sorted(woerter, key=str.lower, reverse=True))
personen = [("Mia", 25), ("Tom", 19), ("Lea", 31)]
print(sorted(personen, key=lambda p: p[1]))['Apfel', 'Banane', 'Kiwi', 'Zitrone']
['Kiwi', 'Apfel', 'Banane', 'Zitrone']
['Zitrone', 'Kiwi', 'Banane', 'Apfel']
[('Tom', 19), ('Mia', 25), ('Lea', 31)]Listen entpacken
erste, zweite, *rest = [1, 2, 3, 4, 5]
print(erste, zweite, rest)
*anfang, letztes = "abc"
print(anfang, letztes)1 2 [3, 4, 5] ['a', 'b'] c
Hilfreiche eingebaute Funktionen für Listen
werte = [3, 8, 1]
print(list(reversed(werte)))
print(any(w > 5 for w in werte))
print(all(w > 0 for w in werte))
print(list(map(str, werte)))
print(list(filter(lambda w: w > 2, werte)))[1, 8, 3] True True ['3', '8', '1'] [3, 8]
Merke
append,extend,insert,remove,pop,clearverändern die Liste direktsort()verändert und liefertNone;sorted()liefert eine neue Listekey=bestimmt das Sortierkriterium,reverse=Truekehrt um- Entpacken:
a, b, *rest = liste any()undall()prüfen Bedingungen über eine ganze Liste
Aufgabe
Sortiere die Namen ["Zoe", "adam", "Bea", "chris"] unabhängig von der Groß-/Kleinschreibung und gib sie aus.