Uso de * y zip para "descomprimir"
Sabes cómo utilizar zip()
y cómo imprimir valores de un objeto zip
. ¡Excelente!
Juguemos un poco más con zip()
. No existe una función de descompresión para hacer lo contrario de lo que hace zip()
. Sin embargo, podemos invertir el resultado de zip
utilizando zip()
con un poco de ayuda de *
. *
descomprime un iterable como una lista o una tupla en argumentos posicionales en una llamada a función.
En este ejercicio, utilizarás *
en una llamada a zip()
para descomprimir las tuplas producidas por zip()
.
Se han precargado dos tuplas de cadenas, mutants
y powers
.
Este ejercicio forma parte del curso
Caja de herramientas Python
Instrucciones de ejercicio
- Crea un objeto
zip
utilizandozip()
enmutants
ypowers
en ese orden. Asigna el resultado a . - Imprime las tuplas de
z1
descomprimiéndolas en argumentos posicionales con el operador*
en una llamada aprint()
. - Como la llamada anterior a
print()
habría agotado los elementos dez1
, vuelve a crear el objetozip
que definiste anteriormente y asigna de nuevo el resultado az1
. - "Descomprime" las tuplas de
z1
descomprimiéndolas en argumentos posicionales con el operador*
en una llamada azip()
. Asigna los resultados aresult1
yresult2
en ese orden. - Las últimas declaraciones
print()
imprimen la salida de compararresult1
conmutants
yresult2
conpowers
. Haz clic enSubmit Answer
para ver siresult1
yresult2
descomprimidos son equivalentes amutants
ypowers
, respectivamente.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# 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)