Використання * і zip для «розпакування»
Ви вже вмієте використовувати zip() і виводити значення з обʼєкта zip. Чудово!
Давайте ще трохи пограємося з zip(). Окремої функції unzip для зворотної дії до zip() не існує. Проте ми можемо виконати «зворотне zip-ування», використавши 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. Натисніть "Submit Answer", щоб перевірити, чи еквівалентні розпаковані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)