Met * en zip 'unzippen'
Je weet hoe je zip() gebruikt en hoe je waarden uit een zip-object print. Top!
Laten we nog wat verder spelen met zip(). Er is geen aparte functie om het omgekeerde van zip() te doen. We kunnen echter wel ongedaan maken wat is 'gezipd' door zip() te gebruiken met een beetje hulp van *! * pakt een iterable zoals een lijst of tuple uit naar positionele argumenten in een functieaanroep.
In deze oefening gebruik je * in een aanroep van zip() om de tuples uit te pakken die door zip() zijn geproduceerd.
Twee tuples met strings, mutants en powers, zijn al voor je ingeladen.
Deze oefening maakt deel uit van de cursus
Python-gereedschapskist
Oefeninstructies
- Maak een
zip-object doorzip()te gebruiken opmutantsenpowers, in die volgorde. Ken het resultaat toe aanz1. - Print de tuples in
z1door ze uit te pakken naar positionele argumenten met de*-operator in eenprint()-aanroep. - Omdat de vorige
print()-aanroep de elementen inz1heeft uitgeput, maak je hetzip-object dat je eerder definieerde opnieuw en ken je het resultaat weer toe aanz1. - 'Unzip' de tuples in
z1door ze uit te pakken naar positionele argumenten met de*-operator in eenzip()-aanroep. Ken de resultaten toe aanresult1enresult2, in die volgorde. - De laatste
print()-statements printen de uitvoer van het vergelijken vanresult1metmutantsenresult2metpowers. Klik op Antwoord verzenden om te zien of de uitgepakteresult1enresult2overeenkomen met respectievelijkmutantsenpowers.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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)