Использование * и zip для «распаковки»
Вы уже умеете работать с zip() и выводить значения из объекта zip. Отлично!
Давайте поэкспериментируем с zip() ещё немного. Функции unzip, которая выполняла бы обратную операцию, не существует. Однако «раскрутить» то, что было объединено с помощью zip(), всё же можно — с небольшой помощью оператора *! Оператор * распаковывает итерируемый объект (например, список или кортеж) в позиционные аргументы при вызове функции.
В этом упражнении вы используете * в вызове zip(), чтобы распаковать кортежи, полученные с помощью zip().
Два кортежа строк — mutants и powers — уже загружены заранее.
Это упражнение является частью курса
Инструментарий Python
Инструкции к упражнению
- Создайте объект
zip, применивzip()кmutantsиpowersименно в таком порядке. Присвойте результат переменнойz1. - Выведите кортежи из
z1, распаковав их в позиционные аргументы с помощью оператора*в вызовеprint(). - Поскольку предыдущий вызов
print()исчерпает элементыz1, пересоздайте объектzip, определённый ранее, и снова присвойте результат переменнойz1. - «Распакуйте» кортежи из
z1, передав их в качестве позиционных аргументов с помощью оператора*в вызовеzip(). Присвойте результаты переменнымresult1иresult2именно в таком порядке. - Последний оператор
print()выведет результат сравненияresult1сmutantsиresult2сpowers. НажмитеОтправить ответ, чтобы проверить, совпадают ли распакованныеresult1иresult2сmutantsиpowersсоответственно.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Create a zip object from mutants and powers: z1
z1 = ____
# Print the tuples in z1 by unpacking with *
print(____)
# Re-create a zip object from mutants and powers: z1
z1 = ____
# 'Unzip' the tuples in z1 by unpacking with * and zip(): result1, result2
result1, result2 = ____
# Check if unpacked tuples are equivalent to original tuples
print(result1 == mutants)
print(result2 == powers)