Usando * e zip para 'descompactar'
Você sabe como usar zip()
e também como imprimir valores de um objeto zip
. Excelente!
Vamos brincar um pouco mais com zip()
. Não há função de descompactação para fazer o inverso do que o zip()
faz. No entanto, você pode reverter o que foi compactado usando zip()
com uma pequena ajuda de *
! *
descompacta um iterável, como uma lista ou uma tupla, em argumentos posicionais em uma chamada de função.
Neste exercício, você usará *
em uma chamada de zip()
para desempacotar as tuplas produzidas por zip()
.
Duas tuplas de strings, mutants
e powers
, foram pré-carregadas.
Este exercício faz parte do curso
Caixa de ferramentas Python
Instruções de exercício
- Crie um objeto
zip
usandozip()
emmutants
epowers
, nessa ordem. Atribua o resultado az1
. - Imprima as tuplas em
z1
descompactando-as em argumentos posicionais usando o operador*
em uma chamadaprint()
. - Como a chamada anterior para
print()
teria esgotado os elementos emz1
, recrie o objetozip
que você definiu anteriormente e atribua o resultado novamente az1
. - "Descompacte" as tuplas em
z1
, descompactando-as em argumentos posicionais usando o operador*
em uma chamadazip()
. Atribua os resultados aresult1
eresult2
, nessa ordem. - Os últimos comandos
print()
imprimem a saída da comparação deresult1
commutants
eresult2
compowers
. Clique emSubmit Answer
para ver se os arquivos descompactadosresult1
eresult2
são equivalentes amutants
epowers
, respectivamente.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
# 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)