Как распаковать список в Python
В этом руководстве вы узнаете, как распаковать список в Python, чтобы сделать ваш код более кратким.
Знакомство с распаковкой списка
В следующем примере определяется список строк:
colors = ['red', 'blue', 'green']
Чтобы присвоить первый, второй и третий элементы списка переменным, вы можете присвоить отдельные элементы переменным следующим образом:
red = colors[0] blue = colors[1] green = colors[2]
Однако Python предоставляет лучший способ сделать это. Это называется распаковкой последовательности.
По сути, вы можете присвоить элементы списка(а также кортежа) нескольким переменным. Например:
red, blue, green = colors
Этот оператор присваивает первый, второй и третий элементы списка цветов красным, синим и зеленым переменным.
В этом примере количество переменных слева такое же, как количество элементов в списке справа.
Если вы используете меньшее количество переменных слева, вы получите ошибку. Например:
colors = ['red', 'blue', 'green'] red, blue = colors
Ошибка:
ValueError: too many values to unpack(expected 2)
В этом случае Python не смог распаковать три элемента в две переменные.
Unpacking и packing
Если вы хотите распаковать первые несколько элементов списка и не беспокоитесь о других элементах, вы можете:
- Сначала распаковать нужные элементы в переменные.
- Затем упаковать оставшиеся элементы в новый список и присвоить его другой переменной.
Поставив звездочку(*) перед именем переменной, вы упакуете оставшиеся элементы в список и присвоите их переменной. Например:
colors = ['red', 'blue', 'green'] red, blue, *other = colors print(red) print(blue) print(other)
Выход:
red blue ['green']
В этом примере первый и второй элементы списка цветов присваиваются красным и зеленым переменным. И последний элемент списка присваивается другой переменной.
Вот еще один пример:
colors = ['cyan', 'magenta', 'yellow', 'black'] cyan, magenta, *other = colors print(cyan) print(magenta) print(other)
Выход:
cyan magenta ['yellow', 'black']
В этом примере первый и второй элементы присваиваются переменным. Два последних элемента упаковываются в новый список, и новый список присваивается другой переменной.