PorównaniePorównania

append() vs extend()

append() dodaje na koniec listy jeden element, nawet jeśli jest to cała lista, a extend() dopisuje po kolei wszystkie elementy przekazanej kolekcji.

Na tej stronie

Porównanie w tabeli

#

Przykład

#
Python
frontend = ["HTML"]
frontend.append("CSS")
frontend.extend(["JavaScript", "React"])

print(frontend)
Wynikzapisany wynik, możesz go sprawdzić
['HTML', 'CSS', 'JavaScript', 'React']

Definicja i zastosowanie

#

Obie metody modyfikują listę w miejscu i dodają nowe elementy na jej końcu. Obie zwracają None, więc nie przypisuj ich wyniku z powrotem do zmiennej.

Różnią się tym, co uznają za jeden element. append(x) dodaje dokładnie to, co podasz, jako jedną nową pozycję, więc przekazana lista trafia na koniec jako zagnieżdżony element. extend(kolekcja) rozpakowuje przekazaną kolekcję i dopisuje każdy jej element osobno. Operator += na liście działa tak jak extend().

Gdy dodajesz jedną wartość, nawet jeśli sama jest listą czy krotką, użyj append(). Gdy chcesz dopisać zawartość innej kolekcji element po elemencie, użyj extend() albo +=. Pomylenie ich to częsty błąd: append() tam, gdzie miał być extend(), tworzy listę z zagnieżdżoną listą w środku.

Składnia

#
Składnia
lista.append(element)
lista.extend(iterable)

Więcej przykładów

#
append() z listą zagnieżdża ją w środku
Python
versions = ["1.0"]
versions.append(["1.1", "1.2"])
print(versions)

other = ["1.0"]
other.extend(["1.1", "1.2"])
print(other)
Wynikzapisany wynik, możesz go sprawdzić
['1.0', ['1.1', '1.2']]
['1.0', '1.1', '1.2']
extend() z napisem dodaje litery
Python
letters = ["a"]
letters.extend("bc")
print(letters)

letters.append("bc")
print(letters)
Wynikzapisany wynik, możesz go sprawdzić
['a', 'b', 'c']
['a', 'b', 'c', 'bc']

Dobre praktyki

#
  • Nie pisz lista = lista.append(x) ani lista = lista.extend(y). Obie metody zwracają None.
  • Do dodania jednego napisu jako całości użyj append(), nie extend().
  • Jeśli nie chcesz zmieniać oryginału, połącz listy operatorem +: nowa = a + b.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.