🎯 Zip em Python
Em poucas palavras
Definição técnica ou simplificada do conceito.
📝 Notas e Desenvolvimento
🔗 Conexões e Contexto
- Atlas: MdC - Programação
- Notas Relacionadas:
📚 Referências e Fontes
Links Externos
Citações Diretas
📂 Outros Conteúdos Preservados
Como Funciona
zip() pega um ou mais iteráveis como argumentos e “empacota” seus elementos correspondentes em tuplas.
Sintaxe: zip(*iteraveis)
*iteraveis: Um número variável de iteráveis (listas, tuplas, strings, etc.).
Exemplo Básico:
nomes = ("John", "Charles", "Mike")
sobrenomes = ("Jenny", "Christy", "Monica")
### Cria um objeto zip
pares = zip(nomes, sobrenomes)
### Para ver o conteúdo, você pode convertê-lo para uma lista ou tupla
print(list(pares))
### Saída: [('John', 'Jenny'), ('Charles', 'Christy'), ('Mike', 'Monica')]
### Ou iterar diretamente sobre ele
### for nome, sobrenome in zip(nomes, sobrenomes):
### print(f"{nome} {sobrenome}")
Comprimentos Diferentes dos Iteráveis
Se os iteráveis passados para zip() tiverem comprimentos diferentes, o iterador resultante terá o comprimento do iterável mais curto. Os elementos dos iteráveis mais longos que não têm um correspondente no iterável mais curto são simplesmente ignorados.
Exemplo com Comprimentos Diferentes:
aulas = ["Matemática", "Português", "História", "Geografia"]
notas = [90, 85, 78] # Uma nota a menos que as aulas
combinado = zip(aulas, notas)
print(list(combinado))
### Saída: [('Matemática', 90), ('Português', 85), ('História', 78)]
### 'Geografia' foi ignorada porque não havia uma nota correspondente.
Casos de Uso Comuns
-
Iterar sobre Múltiplas Listas Simultaneamente:
produtos = ['Maçã', 'Banana', 'Laranja'] precos = [2.50, 1.75, 3.00] for produto, preco in zip(produtos, precos): print(f"{produto}: R${preco:.2f}") # Saída: # Maçã: R$2.50 # Banana: R$1.75 # Laranja: R$3.00 -
Criar Dicionários:
zip()é frequentemente usado em conjunto com a funçãodict()para criar dicionários a partir de duas listas (uma para chaves e outra para valores).chaves = ['nome', 'idade', 'cidade'] valores = ['Alice', 30, 'Nova York'] pessoa = dict(zip(chaves, valores)) print(pessoa) # Saída: {'nome': 'Alice', 'idade': 30, 'cidade': 'Nova York'} -
“Deszipar” (Unzipping) uma Sequência:
Você pode usar o operador*(desempacotamento de sequências) comzip()para reverter a operação, ou seja, transformar uma lista de tuplas de volta em tuplas de listas (ou outras sequências).coordenadas = [(1, 2), (3, 4), (5, 6)] # Deszipa as coordenadas em duas tuplas separadas para x e y x_coords, y_coords = zip(*coordenadas) print(f"Coordenadas X: {x_coords}") # Saída: Coordenadas X: (1, 3, 5) print(f"Coordenadas Y: {y_coords}") # Saída: Coordenadas Y: (2, 4, 6)
A função zip() é uma ferramenta poderosa para trabalhar com múltiplos iteráveis de forma sincronizada, tornando o código mais limpo e eficiente.
:: Referência :: Função zip() do Python (w3schools.com)