Python:Рецепты/Распаковка последовательности в отдельные переменные: различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) (Новая страница: «{{Python/Панель перехода}} {{Myagkij-редактор}} =Распаковка последовательности в отдельные перем...») |
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)]