ÎncepețiÎncepe gratuit

Folosirea * și zip pentru 'dezarhivare'

Știi deja cum să folosești zip() și cum să afișezi valorile dintr-un obiect zip. Excelent!

Hai să explorăm puțin mai mult zip(). Nu există o funcție unzip care să facă inversul operației zip(). Putem, însă, să inversăm ceea ce a fost arhivat cu zip() folosind tot zip(), dar cu ajutorul operatorului *! * despachetează un iterabil – cum ar fi o listă sau un tuplu – ca argumente poziționale într-un apel de funcție.

În acest exercițiu, vei folosi * într-un apel zip() pentru a despacheta tuplurile produse de zip().

Două tupluri de șiruri de caractere, mutants și powers, au fost preîncărcate.

Acest exercițiu face parte din cursul

Cutia cu instrumente Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează un obiect zip aplicând zip() pe mutants și powers, în această ordine. Atribuie rezultatul variabilei z1.
  • Afișează tuplurile din z1 despachetându-le ca argumente poziționale folosind operatorul * într-un apel print().
  • Deoarece apelul anterior print() ar fi epuizat elementele din z1, recreează obiectul zip definit anterior și atribuie rezultatul din nou lui z1.
  • 'Dezarhivează' tuplurile din z1 despachetându-le ca argumente poziționale folosind operatorul * într-un apel zip(). Atribuie rezultatele variabilelor result1 și, respectiv, result2, în această ordine.
  • Ultima instrucțiune print() afișează rezultatul comparării lui result1 cu mutants și al lui result2 cu powers. Apasă Trimite răspunsul pentru a vedea dacă result1 și result2 despachetate sunt echivalente cu mutants și, respectiv, powers.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul