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 del ejercicio
- Crea un objeto
ziputilizandozip()enmutantsypowersen ese orden. Asigna el resultado a . - Imprime las tuplas de
z1descomprimié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 objetozipque definiste anteriormente y asigna de nuevo el resultado az1. - "Descomprime" las tuplas de
z1descomprimiéndolas en argumentos posicionales con el operador*en una llamada azip(). Asigna los resultados aresult1yresult2en ese orden. - Las últimas declaraciones
print()imprimen la salida de compararresult1conmutantsyresult2conpowers. Haz clic enSubmit Answerpara ver siresult1yresult2descomprimidos son equivalentes amutantsypowers, respectivamente.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el 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)