Распаковка кортежа в переменные делается простым присваиванием:
my_tuple = (1, 2, "hello")
a, b, c = my_tuple
print(a) # Output: 1
print(b) # Output: 2
print(c) # Output: hello
Можно использовать *
для захвата нескольких элементов в список, если количество переменных меньше количества элементов кортежа:
my_tuple = (1, 2, 3, 4, 5)
a, b, *rest = my_tuple
print(a) # Output: 1
print(b) # Output: 2
print(rest) # Output: [3, 4, 5]
Также можно игнорировать значения, используя _
(подчеркивание):
my_tuple = (1, 2, 3)
a, _, c = my_tuple
print(a) # Output: 1
print(c) # Output: 3
Распаковка кортежа в переменные в Python - это простой и эффективный способ присвоить значения, хранящиеся в кортеже, отдельным переменным. Это возможно, потому что кортежи поддерживают итерацию и присваивание значений на основе порядка элементов.
Основные способы распаковки кортежа:
my_tuple = (1, "hello", 3.14)
x, y, z = my_tuple
print(f"x = {x}, y = {y}, z = {z}") # Output: x = 1, y = hello, z = 3.14
my_tuple = (1, "hello", 3.14)
x, _, z = my_tuple
print(f"x = {x}, z = {z}") # Output: x = 1, z = 3.14. "hello" было проигнорировано
my_tuple = (1, 2, 3, 4, 5)
first, second, *rest = my_tuple
print(f"first = {first}, second = {second}, rest = {rest}") # Output: first = 1, second = 2, rest = [3, 4, 5]
my_tuple = (1, 2, 3)
first, *rest, last = my_tuple
print(f"first = {first}, rest = {rest}, last = {last}") # Output: first = 1, rest = [2], last = 3
my_tuple = (1, 2)
first, *rest, last = my_tuple #error: need more than 1 value to unpack
my_tuple = (1, (2, 3))
x, (y, z) = my_tuple
print(f"x = {x}, y = {y}, z = {z}") # Output: x = 1, y = 2, z = 3
Важно:
ValueError: too many values to unpack (expected ...)
или ValueError: not enough values to unpack (expected ..., got ...)
.Распаковка кортежей - это идиоматичный способ работы с данными в Python, который делает код более читабельным и лаконичным.