Verwenden von * und zip zum „Entpacken“
Du weißt, wie man zip() verwendet und wie man Werte aus einem zip-Objekt ausgibt. Ausgezeichnet!
Lass uns noch ein bisschen mit zip() herumexperimentieren. Es gibt keine unzip-Funktion, mit der du das Gegenteil von dem tun kannst, was zip() tut. Wir können jedoch umkehren, was zusammengezippt wurde, indem wir zip() zusammen mit dem Stern (*) verwenden. * entpackt ein Iterable wie eine Liste oder ein Tupel in Positionsargumente in einem Funktionsaufruf.
In dieser Aufgabe wirst du * in einem Aufruf an zip() verwenden, um die von zip() erzeugten Tupel zu entpacken.
Zwei Tupel von Strings, mutants und powers, wurden bereits geladen.
Diese Übung ist Teil des Kurses
<Kurs>Python Toolbox</Kurs>Übungsanweisungen
- Erstelle ein
zip-Objekt, indem duzip()aufmutantsundpowersanwendest (in dieser Reihenfolge). Weise das Ergebnisz1zu. - Gib die Tupel in
z1aus, indem du sie mit dem*-Operator in einemprint()-Aufruf in Positionsargumente entpackst. - Da der vorherige Aufruf von
print()die Elemente inz1erschöpft hätte, erstellst du das zuvor definiertezip-Objekt neu und weist das Ergebnis erneutz1zu. - ‚Entpacke‘ die Tupel in
z1, indem du sie mit dem*-Operator in einemzip()-Aufruf in Positionsargumente entpackst. Weise die Ergebnisseresult1undresult2zu (in dieser Reihenfolge). - Die letzte
print()-Anweisung gibt die Ergebnisse des Vergleichs vonresult1mitmutantsundresult2mitpowersaus. Klicke aufSubmit Answer, um zu sehen, ob die entpacktenresult1undresult2mitmutantsbzw.powersübereinstimmen.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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)