Użycie * i zip do 'rozpakowania'
Wiesz już, jak używać zip() i jak wyświetlać wartości z obiektu zip. Świetnie!
Poeksperymentujmy z zip() jeszcze trochę. Nie istnieje funkcja unzip, która działałaby odwrotnie niż zip(). Możemy jednak odwrócić efekt działania zip() – wystarczy użyć jej razem z operatorem *! Operator * rozpakowuje iterowalny obiekt, taki jak lista lub krotka, do argumentów pozycyjnych w wywołaniu funkcji.
W tym ćwiczeniu użyjesz * w wywołaniu zip(), aby rozpakować krotki utworzone przez zip().
Dwie krotki łańcuchów znaków, mutants i powers, zostały wcześniej wczytane.
To ćwiczenie jest częścią kursu
Zestaw narzędzi Pythona
Instrukcje do ćwiczenia
- Utwórz obiekt
zip, używajączip()namutantsipowers– w tej kolejności. Przypisz wynik doz1. - Wyświetl krotki z
z1, rozpakowując je do argumentów pozycyjnych za pomocą operatora*w wywołaniuprint(). - Ponieważ poprzednie wywołanie
print()wyczerpało elementy zz1, odtwórz wcześniej zdefiniowany obiektzipi ponownie przypisz wynik doz1. - 'Rozpakuj' krotki z
z1, przekazując je jako argumenty pozycyjne za pomocą operatora*w wywołaniuzip(). Przypisz wyniki doresult1iresult2– w tej kolejności. - Ostatnia instrukcja
print()wyświetla wynik porównaniaresult1zmutantsorazresult2zpowers. KliknijPrześlij odpowiedź, aby sprawdzić, czy rozpakowaneresult1iresult2są równoważne odpowiedniomutantsipowers.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)