Распаковка на примере списков и кортежей

Распаковка в Python — это мощная техника, которая позволяет одновременно присваивать несколько значений переменным из списков и кортежей. Эта техника делает код более компактным и понятным, особенно при работе с коллекциями данных. В этой лекции мы сосредоточимся исключительно на распаковке в контексте списков и кортежей.

Основы распаковки

Распаковка позволяет извлекать значения из списка или кортежа и присваивать их переменным. Важно помнить, что количество переменных должно совпадать с количеством элементов в списке или кортеже.

Пример распаковки кортежа:

coordinates = (10, 20)
x, y = coordinates
print(f"x = {x}, y = {y}")
# Вывод: x = 10, y = 20

Здесь кортеж (10, 20) распаковывается в переменные x и y.

Пример распаковки списка:

colors = ["red", "green", "blue"]
first_color, second_color, third_color = colors
print(first_color, second_color, third_color)  # Вывод: red green blue

Список colors распаковывается в три переменные.

 

Распаковка с использованием *

Иногда количество элементов в списке или кортеже неизвестно заранее. В таких случаях можно использовать оператор *, чтобы собрать остаток элементов в одну переменную.

Пример:

numbers = [1, 2, 3, 4, 5]
first, *middle, last = numbers
print(first)  # Вывод: 1
print(middle)  # Вывод: [2, 3, 4]
print(last)  # Вывод: 5

В этом примере переменная middle получает все элементы, кроме первого и последнего.

 

Распаковка вложенных списков и кортежей

Распаковка поддерживает работу с вложенными списками и кортежами, что позволяет извлекать значения из более сложных структур.

Пример распаковки вложенного кортежа:

data = ("John", ("Doe", 30))
first_name, (last_name, age) = data
print(first_name)  # Вывод: John
print(last_name)   # Вывод: Doe
print(age)         # Вывод: 30

Здесь кортеж внутри кортежа также распаковывается на отдельные переменные.

Пример распаковки вложенного списка:

matrix = [[1, 2, 3], [4, 5, 6]]
(row1, row2) = matrix
print(row1)  # Вывод: [1, 2, 3]
print(row2)  # Вывод: [4, 5, 6]

Здесь двумерный список распаковывается в две переменные, каждая из которых содержит строку матрицы.

 

Распаковка с использованием значений по умолчанию

Для работы с неопределённым количеством элементов можно использовать значение по умолчанию при распаковке.

Пример:

data = [1, 2]
a, b, *rest = data + [0] * (3 - len(data))  # Дополнение списка до трех элементов
print(a, b, rest)  # Вывод: 1 2 [0]

Здесь добавляется значение по умолчанию, если исходный список не содержит достаточно элементов.

Распаковка на примере списков и кортежей — это полезный инструмент для упрощения работы с коллекциями данных. Она позволяет легко извлекать и распределять значения по переменным, что улучшает читаемость и структуру кода. Овладение этой техникой сделает ваш код более эффективным и понятным.

Перейти к следующему шагу

Комментарии