Erklärung zur Lektion
Nach dieser Lektion kannst du:
append() ein Element oder mit extend() mehrere Elemente hinzufügen.remove() den ersten passenden Wert entfernen.pop() ein Element entfernen und zurückerhalten, entweder mit dem Standardindex oder einem angegebenen Index.Listen sind veränderlich, du kannst ihre Länge also ändern, ohne sie neu aufzubauen. Der wichtigste Unterschied lautet ein Element oder mehrere Elemente: append(value) fügt ein Objekt hinzu, während extend(iterable) jeden Wert aus einem iterierbaren Objekt hinzufügt.
Verwende insert(index, value), wenn das neue Element vor eine vorhandene Position gehört. Das unterscheidet sich von items[index] = value, das das Element an dieser Stelle ersetzt.
Zum Löschen sucht remove(value) nach einem passenden Wert und löscht sein erstes Vorkommen; wenn der Wert nicht vorhanden ist, löst es ValueError aus. pop() entfernt das letzte Element und gibt es zurück; pop(index) entfernt eine bestimmte Position und gibt sie zurück und löst IndexError aus, wenn diese Position ungültig ist. Beide Operationen verändern die ursprüngliche Liste.
Du kannst diese Operationen in Schleifen und Bedingungen verwenden, um eine Warteschlange, eine Checkliste oder eine Sammlung von Job-Namen zu pflegen. Vermeide es, eine verändernde Methode in eine return-Anweisung zu verketten: Methoden wie append(), extend(), insert() und remove() geben None zurück.
append() fügt ein einzelnes Element hinzu. extend() übernimmt die Elemente eines anderen iterierbaren Objekts nacheinander.
services = ["api"]
services.append("worker")
services.extend(["database", "cache"])
print(services)Ausgabe:
['api', 'worker', 'database', 'cache']Würdest du stattdessen die gesamte zweite Liste anhängen, entstünde ein verschachteltes Listenelement.
insert(index, value) verschiebt die vorhandenen Elemente nach rechts.
stages = ["build", "deploy"]
stages.insert(1, "test")
print(stages)Ausgabe:
['build', 'test', 'deploy']Das frühere zweite Element ist weiterhin vorhanden.
Wenn ein Wert zweimal vorkommt, entfernt remove() nur die erste Kopie.
flags = ["ready", "retry", "ready"]
flags.remove("ready")
print(flags)Ausgabe:
['retry', 'ready']Ein Wert, der nicht vorkommt, würde ValueError verursachen.
Ohne Index entfernt pop() das letzte Element; mit einem Index entfernt es diese Position.
workers = ["api", "queue", "mailer"]
last_worker = workers.pop()
first_worker = workers.pop(0)
print(last_worker)
print(first_worker)
print(workers)Ausgabe:
mailer
api
['queue']Beide Aufrufe verändern die ursprüngliche Liste und geben dabei den entfernten Wert zurück.
| Bedarf | Methode |
|---|---|
| Ein Element am Ende hinzufügen | items.append(value) |
| Jedes Element eines anderen iterierbaren Objekts hinzufügen | items.extend(values) |
| Vor einem Index einfügen | items.insert(index, value) |
| Den ersten gleichen Wert entfernen | items.remove(value) |
| Das letzte Element entfernen und zurückgeben | items.pop() |
| Den Index entfernen und zurückgeben | items.pop(index) |
items[index] = value ersetzt, statt Elemente zu verschieben.pop() übergeben: pop() erwartet einen Index, nicht den gesuchten Wert.remove() alle Duplikate löscht: Es entfernt nur den ersten passenden Wert.