Распаковка массива в отдельные переменные [Решение #1.1]
Примеры Python » Структуры и алгоритмы данных python unpack, распаковка данных python, распаковка массива
Проблема: У вас есть N-ое кол-во элементов кортежа или последовательность, и вы хотите их распаковать в N-ое кол-во уникальных переменных.
Решение: Любая последовательность (или итерацию) могут быть распакованы в переменных, используя операцию назначения "=". Единственное требование состоит в том, что число переменных и элементов структуры должны соответствовать последовательности.
Открываем Python Shell
Например:
>>> m = (7, 15)
>>> a, b = m
>>> print a
7
>>> print b
15
>>> print a + b
22
Теперь более сложный вариант
>>> baza = ['PYTHON', 22, 1.99, (2015, 03, 04)]
>>> name, km, price, today = baza
>>> print name
PYTHON
>>> print km
22
>>> print price
1.99
>>> print today
(2015, 3, 4)
>>> (god, mes, deni) = today
>>> print god
2015
>>> print mes
3
>>> print deni
4
Если есть несоответствие в количестве элементов, вы получите сообщение об ошибке. Например:
>>> T = (1, 2)
>>> x, y, z = T
Traceback (most recent call last):
File "pyshell#17", line 1, in
x, y, z = T
ValueError: need more than 2 values to unpack
Распаковка строки на переменные
Распаковка на самом деле работает с любым объектом а не только кортежи или списки. Это включает в себя строки, файлы, итераторы и генераторы.
Например:
>>> name = "Google"
>>> q,w,e,r,t,y = name
>>> print q
G
>>> print e
o
>>> print y
e
Игнорирование значений при распаковке
При распаковке, вы можете игнорировать определенные значения. Python не имеет специальный синтаксис для этого, но вы можете просто выбрать одноразовые имя переменной для него. Например:
>>> data = [100, 200, 300, 400]
>>> first, _, _, last = data
>>> print first
100
>>> print last
400
Убедитесь, что имя переменной которую вы выбираете не используется для чего-то другого уже.