Python:Рецепты/Распаковка последовательности в отдельные переменные: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{Python/Панель перехода}} {{Myagkij-редактор}} =Распаковка последовательности в отдельные перем...»)
 
Нет описания правки
Строка 6: Строка 6:
==Задача==
==Задача==


Дана последовательность из ''N-элементов'', которую необходимо распаковать в ''N-переменных''.


==Решение==


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


==Пример==
==Пример==
===№1===


<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
p1 = (1,2,3)
a, b, c = p1
</syntaxhighlight>


Результат:
<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
>>> a
1
>>> b
2
>>> c
3
>>> p1
(1, 2, 3)
</syntaxhighlight>
===№2===
<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
p2 = ['WIKIHANDBK', 10, 100.9, (15, 4, 2020)]
site, inum, fnum, date = p2
</syntaxhighlight>
Результат:
<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
>>> site
'WIKIHANDBK'
>>> inum
10
>>> fnum
100.9
>>> date
(15, 4, 2020)
>>> p2
['WIKIHANDBK', 10, 100.9, (15, 4, 2020)]
</syntaxhighlight>
===№3===
<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
p2 = ['WIKIHANDBK', 10, 100.9, (15, 4, 2020)]
site, inum, fnum, (day, month, year) = p2
</syntaxhighlight>
Результат:
<syntaxhighlight lang="python" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
>>> site
'WIKIHANDBK'
>>> inum
10
>>> fnum
100.9
>>> day
15
>>> month
4
>>> year
2020
>>> p2
['WIKIHANDBK', 10, 100.9, (15, 4, 2020)]
</syntaxhighlight>
</syntaxhighlight>



Версия от 18:59, 15 апреля 2020

Проверка/Оформление/Редактирование: Мякишев Е.А.


Распаковка последовательности в отдельные переменные

Задача

Дана последовательность из N-элементов, которую необходимо распаковать в N-переменных.

Решение

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

Пример

№1

p1 = (1,2,3)
a, b, c = p1

Результат:

>>> a
1
>>> b
2
>>> c
3
>>> p1
(1, 2, 3)

№2

p2 = ['WIKIHANDBK', 10, 100.9, (15, 4, 2020)]
site, inum, fnum, date = p2

Результат:

>>> site
'WIKIHANDBK'
>>> inum
10
>>> fnum
100.9
>>> date
(15, 4, 2020)
>>> p2
['WIKIHANDBK', 10, 100.9, (15, 4, 2020)]

№3

p2 = ['WIKIHANDBK', 10, 100.9, (15, 4, 2020)]
site, inum, fnum, (day, month, year) = p2

Результат:

>>> site
'WIKIHANDBK'
>>> inum
10
>>> fnum
100.9
>>> day
15
>>> month
4
>>> year
2020
>>> p2
['WIKIHANDBK', 10, 100.9, (15, 4, 2020)]

См.также

Внешние ссылки