W3docs

Listenelemente ändern

Listenelemente in Python ändern: Index-Zuweisung, Slicing, append(), insert(), extend() und List Comprehension mit klaren Beispielen erklärt.

Python-Listen sind veränderlich (mutable), das heißt, ihr Inhalt kann nach der Erstellung geändert werden. Dieses Kapitel behandelt alle praktischen Techniken zur Änderung von Listenelementen: direkte Index-Zuweisung, Slice-Ersetzung, append(), insert(), extend() und List Comprehension. Zu verstehen, wann welcher Ansatz sinnvoll ist, ist entscheidend für sauberen und effizienten Python-Code.

Ein einzelnes Element per Index ändern

Der direkteste Weg, ein einzelnes Element zu ändern, besteht darin, seinem Index eine neue Wert zuzuweisen. Listenindizes beginnen bei 0.

fruits = ["apple", "banana", "cherry"]
fruits[1] = "mango"
print(fruits)

Ausgabe:

['apple', 'mango', 'cherry']

Negativer Index zählt vom Ende der Liste. Index -1 ist das letzte Element, -2 das vorletzte usw.

colors = ["red", "green", "blue"]
colors[-1] = "yellow"
print(colors)

Ausgabe:

['red', 'green', 'yellow']

Wenn Sie versuchen, einem nicht vorhandenen Index zuzuweisen, wirft Python einen IndexError. Verwenden Sie Listenzugriffsmuster oder len(), um im gültigen Bereich zu bleiben.

Einen Bereich von Elementen mit Slicing ersetzen

Slice-Zuweisung ersetzt einen zusammenhängenden Abschnitt einer Liste durch eine andere Liste. Das Slice my_list[start:end] wählt Elemente vom Index start bis (ausschließlich) Index end aus.

python— editable, runs on the server

Ausgabe:

[1, 20, 30, 5]

Beachten Sie, dass die Ersetzungsliste nicht die gleiche Länge wie das Slice haben muss. Hier wurden drei Elemente (2, 3, 4) durch zwei Elemente (20, 30) ersetzt, wodurch die Liste um eins kürzer wurde.

Sie können auch Elemente einfügen, ohne welche zu entfernen, indem Sie ein leeres Slice verwenden:

letters = ["a", "b", "e"]
letters[2:2] = ["c", "d"]
print(letters)

Ausgabe:

['a', 'b', 'c', 'd', 'e']

append() — ein Element ans Ende hinzufügen

Die Methode append() fügt ein einzelnes Element ans Ende einer Liste hinzu und verändert die Liste direkt (in place). Sie fügt immer genau ein Element hinzu, auch wenn dieses Element selbst eine Liste ist.

python— editable, runs on the server

Ausgabe:

[1, 2, 3, 4, 5]

Das Anhängen einer Liste als einzelnes Element verschachtelt sie, anstatt sie zusammenzuführen:

my_list = [1, 2, 3]
my_list.append([4, 5])
print(my_list)

Ausgabe:

[1, 2, 3, [4, 5]]

Verwenden Sie stattdessen extend(), wenn Sie alle Elemente einer anderen Liste zusammenführen möchten.

insert() — ein Element an einer bestimmten Position einfügen

Die Methode insert() platziert ein neues Element an einem bestimmten Index und verschiebt alle nachfolgenden Elemente um eine Position nach rechts.

python— editable, runs on the server

Ausgabe:

[1, 2, 99, 3, 4]

insert() wirft bei Positionen außerhalb des gültigen Bereichs keinen IndexError. Wenn Sie einen Index übergeben, der größer als die Listenlänge ist, wird das Element am Ende eingefügt. Wenn Sie einen negativen Index übergeben, der über den Anfang hinausgeht, wird es am Anfang eingefügt.

extend() — ein weiteres Iterable in die Liste einfügen

Die Methode extend() hängt jedes Element aus einem Iterable (Liste, Tupel, string usw.) ans Ende der Liste an. Die ursprüngliche Liste wächst direkt (in place).

python— editable, runs on the server

Ausgabe:

[1, 2, 3, 4, 5, 6, 7]

extend() vs. append() auf einen Blick:

MethodeWas wird hinzugefügtErgebnis für [1,2] + [3,4]
append([3,4])Ein Element (eine verschachtelte Liste)[1, 2, [3, 4]]
extend([3,4])Jedes Element einzeln[1, 2, 3, 4]

List Comprehension — Elemente mit einer neuen Liste transformieren

List Comprehension erstellt eine neue Liste, indem ein Ausdruck auf jedes Element angewendet wird (mit optionalem Filter). Nach der Comprehension wird die Variable neu zugewiesen – die ursprüngliche Liste wird nicht direkt verändert.

python— editable, runs on the server

Ausgabe:

[4, 8, 12]

Sie können auch alle Elemente ohne Filterung transformieren:

prices = [10.0, 25.5, 8.75]
discounted = [round(p * 0.9, 2) for p in prices]
print(discounted)

Ausgabe:

[9.0, 22.95, 7.88]

Verwenden Sie List Comprehension, wenn Sie eine saubere, lesbare Einzeiler-Lösung benötigen, um eine modifizierte Kopie einer Liste zu erstellen.

Den richtigen Ansatz wählen

ZielBeste Methode
Ein Element an einer bekannten Position ändernIndex-Zuweisung list[i] = value
Einen Bereich von Elementen ersetzenSlice-Zuweisung list[a:b] = new_items
Ein Element ans Ende hinzufügenappend()
Ein Element an einer bestimmten Position einfügeninsert(index, value)
Alle Elemente aus einem anderen Iterable zusammenführenextend()
Eine modifizierte Kopie nach einer Regel erstellenList Comprehension

Informationen zum Entfernen von Elementen aus einer Liste finden Sie unter Listenelemente entfernen. Zum Sortieren einer Liste an Ort und Stelle siehe Listen sortieren. Eine vollständige Referenz aller Listenmethoden finden Sie unter Listenmethoden.

Übungen

Übung
In Python, how can we change items in a list?
In Python, how can we change items in a list?
Was this page helpful?