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 do exercício
- Crie um objeto
zipusandozip()emmutantsepowers, nessa ordem. Atribua o resultado az1. - Imprima as tuplas em
z1descompactando-as em argumentos posicionais usando o operador*em uma chamadaprint(). - Como a chamada anterior para
print()teria esgotado os elementos emz1, recrie o objetozipque 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 aresult1eresult2, nessa ordem. - Os últimos comandos
print()imprimem a saída da comparação deresult1commutantseresult2compowers. Clique emSubmit Answerpara ver se os arquivos descompactadosresult1eresult2são equivalentes amutantsepowers, respectivamente.
Exercício interativo prático
Experimente este exercício completando 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)