Rozpakowywanie sekwencji

Przypisanie elementów krotki lub listy do kilku zmiennych naraz.

Zwraca
Brak (przypisanie).
Na tej stronie

Przykład

#
Python
name, level = ("Ania", 7)
print(name, level)

first, *middle, last = [10, 20, 30, 40, 50]
print(first, middle, last)

a, b = 1, 2
a, b = b, a
print(a, b)
Wynikzapisany wynik, możesz go sprawdzić
Ania 7
10 [20, 30, 40] 50
2 1

Definicja i zastosowanie

#

Rozpakowywanie pozwala przypisać elementy sekwencji do kilku zmiennych w jednej instrukcji: x, y = (3, 4). Liczba zmiennych musi odpowiadać liczbie elementów.

Zmienna z gwiazdką zbiera „resztę”: first, *rest = [1, 2, 3, 4] daje first = 1 i rest = [2, 3, 4]. Gwiazdka może stać w dowolnym miejscu, ale tylko raz.

Dzięki rozpakowywaniu zamiana wartości dwóch zmiennych to a, b = b, a, a funkcje mogą wygodnie zwracać kilka wartości. W pętlach rozpakowuje się pary z enumerate(), zip() i dict.items().

Składnia

#
Składnia
a, b = sekwencja
pierwszy, *reszta = sekwencja

Więcej przykładów

#
Zbyt mało wartości
Python
try:
    x, y, z = [1, 2]
except ValueError as error:
    print(error)
Wynikzapisany wynik, możesz go sprawdzić
not enough values to unpack (expected 3, got 2)

Dobre praktyki

#
  • Niepotrzebne wartości przypisuj do _: name, _ = pair.
  • Rozpakowywanie w pętli for key, value in d.items(): jest czytelniejsze niż odwoływanie się przez indeksy.

Powiązane hasła

#

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