Was es ist
Python-Listen sind dynamische Arrays. Sie können Elemente mit Methoden wie hinzufügenappend(),insert(), Undextend(), oder erstellen Sie eine neue Liste durch Verkettung und Entpacken. Kernlistenoperationen werden in der Dokumentation zu Listenmethoden zusammengefasst.
Warum es wichtig ist
Die Wahl der richtigen Art zum Hinzufügen von Elementen hat Auswirkungen auf Folgendes:
- Lesbarkeit: einzelnes Element vs. viele, am Ende vs. an einer Position.
- Leistung: Anhängen ist schnell; Das Einfügen in der Nähe der Vorderseite verschiebt Gegenstände.
- Richtigkeit: Das Ändern einer vorhandenen Liste im Vergleich zum Zurückgeben einer neuen Liste vermeidet unbeabsichtigte Nebenwirkungen.
Wie man es benutzt
1) Fügen Sie am Ende ein Element hinzu(an Ort und Stelle)
nums = [1, 2, 3]
nums.append(4) # [1, 2, 3, 4]
# Note: append() returns None and mutates the list.
2) An einer bestimmten Position einfügen(an Ort und Stelle)
letters = ['a', 'c', 'd']
letters.insert(1, 'b') # ['a', 'b', 'c', 'd'] inserts at index 1
3) Fügen Sie mehrere Elemente aus einem beliebigen iterierbaren Element hinzu(an Ort und Stelle)
items = ['apple', 'banana']
items.extend(['cherry', 'date']) # end of list
items.extend(('elderberry', 'fig')) # tuples work too
items.extend({ 'g', 'h' }) # adds each element of the set (order arbitrary)
4) Verketten Sie, um eine neue Liste zu erstellen(keine Mutation)
base = [1, 2]
new_list = base + [3] # base unchanged
# or unpacking syntax:
new_list2 = [*base, 3]
front_added = [0, *base] # add to the front without mutating base
5) Kopieren und dann ändern(explizites Nicht-Mutationsmuster)
orig = [10, 20]
copy = orig.copy()
copy.append(30) # orig is still [10, 20]
6) Innerhalb einer verschachtelten Liste hinzufügen
matrix = [['abc', '2'], ['cds', '333'], ['efg']]
matrix[2].append('444') # [['abc','2'], ['cds','333'], ['efg','444']]
7) Fügen Sie mehrere Elemente über die Slice-Zuweisung ein(an Ort und Stelle)
nums = [1, 4, 5]
nums[1:1] = [2, 3] # insert before index 1 → [1, 2, 3, 4, 5]
nums[len(nums):] = [6, 7] # append many → [1, 2, 3, 4, 5, 6, 7]
8) Abkürzung für verlängern(an Ort und Stelle)
Empfohlene Lektüre:Schreiben Sie Listenverständnisse in Python
nums = [1, 2]
nums += [3, 4] # like extend; mutates the existing list
Grenzen und Kompromisse
- Mutation vs. Kopie:
append(),insert(),extend(), Und+=die Liste mutieren. Verwenden+, Auspacken ([*lst, x]), odercopy()-dann-ändern, um Nebenwirkungen zu vermeiden. - Leistung:
append(): amortisiert O(1)extend(k): OK)insert(i, x): O(n) (verschiebt Elemente)lst + otheroder[*lst, *other]: O(n + m), um eine neue Liste zu erstellen
- Iterationssicherheit:Fügen Sie einer Liste nichts hinzu oder entfernen Sie sie nicht, während Sie darüber iterieren. Erstellen Sie zunächst eine neue Liste oder sammeln Sie Änderungen.
- Anhängen vs. erweitern:
append(obj)fügt das Objekt als einzelnes Element hinzu;extend(iterable)fügt jedes Element des Iterables hinzu. - Diktate und Sätze:Beim Erweitern mit einem Diktat werden dessen Schlüssel iteriert. Da die Mengen ungeordnet sind, kann die Reihenfolge der Ergebnisse nicht garantiert werden.
FAQs
- Wie füge ich vorne hinzu?Verwenden
insert(0, x)mutieren, oder[x, *lst]um eine neue Liste zu erstellen. - Warum
append()zurückgeben Keine?Es mutiert an Ort und Stelle; Der Rückgabewert signalisiert, dass keine neue Liste zur Verwendung vorhanden ist. - Ist
+=anders alsextend()?Für Listen,+=verhält sich wieextend()und mutiert die Liste. - Wie füge ich mehrere Elemente an einer Position hinzu?Slice-Zuweisung verwenden:
lst[i:i] = iterable. - Kann ich während der Schleife etwas hinzufügen?Vermeiden Sie Mutationen während der Iteration; Erstellen Sie stattdessen eine Ergebnisliste, z. B.
result = [*lst, extra]nach der Schleife.















