Usare * e zip per "decomprimere"
Sai come usare zip() e come stampare i valori da un oggetto zip. Eccellente!
Proviamo ancora un po' con zip(). Non c'è una funzione di decompressione che fa il contrario di quello che fa zip(). zipPossiamo però invertire quello che è stato assemblato in modo iterabile usando zip()\ con un piccolo aiuto da ` *``! * ` scompone un oggetto iterabile come una lista o una tupla in argomenti posizionali in una chiamata di funzione.
In questo esercizio userai * in una chiamata a zip() per decomprimere le tuple prodotte da zip().
Sono state caricate in anticipo due coppie di stringhe, mutants e powers.
Questo esercizio fa parte del corso
Strumenti per Python
Istruzioni dell'esercizio
- Crea un oggetto
zipusandozip()sumutantsepowers, in quest'ordine. Assegna il risultato az1. - Stampa le tuple in
z1decomprimendole in argomenti posizionali usando l'operatore*in una chiamataprint(). - Dato che la chiamata precedente
print()avrebbe esaurito gli elementi inz1, ricrea l'oggettozipche hai definito prima e assegna di nuovo il risultato az1. - "Decomprimi" le tuple in
z1mettendole negli argomenti posizionali usando l'operatore*in una chiamatazip(). Metti i risultati inresult1eresult2, in quest'ordine. - L'ultima istruzione "
print()" mostra il risultato del confronto traresult1emutantse traresult2epowers. Clicca suSubmit Answerper vedere se i file decompressiresult1eresult2sono uguali amutantsepowers, rispettivamente.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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)