A função zip() no Python pode ser usada para combinar elementos de duas ou mais listas. Esse recurso é útil quando você precisa emparelhar dados correspondentes de diferentes conjuntos, como unir uma lista de nomes a uma lista de idades.
O resultado desse processo pode ser convertido em uma lista de tuplas ou pares, o que facilita o trabalho com dados relacionados. Mesmo que as listas tenham tamanhos diferentes, o zip() combina os elementos até o menor número de itens, o que evita erros.
Como usar zip() com listas?
O comando zip() no Python é útil para combinar listas. Ao usar o comando com dois ou mais conjuntos de dados, o recurso agrupa os elementos correspondentes de cada uma delas ao formar pares ou tuplas.
Dessa forma, é possível trabalhar com os dados de maneira organizada e prática.
Combinar mais de duas listas com zip
O método zip() não se limita a apenas duas listas, pois possibilita combinar quantos conjuntos quiser. Basta passar todas elas como argumento e a função criará tuplas com os elementos de cada lista em suas respectivas posições.
Confira o exemplo abaixo:
lista1 = [1, 2, 3] lista2 = ['a', 'b', 'c'] lista3 = [True, False, True] resultado = zip(lista1, lista2, lista3) for item in resultado: print(item) Saída: (1, 'a', True) (2, 'b', False) (3, 'c', True)
Nesse exemplo, três listas foram combinadas: lista1, lista2 e lista3. A função zip() agrupa os elementos de cada conjunto com base em suas respectivas posições ao formar tuplas.
Se as listas manipuladas tiverem tamanhos diferentes, o zip() interrompe a combinação no menor tamanho.
Iterar sobre listas ao usar zip()
A função zip() também pode ser usada para iterar sobre várias listas ao mesmo tempo. A operação permite processar dados de forma sincronizada, como para combinar uma lista de produtos com os seus respectivos preços.
Veja uma simulação:
produtos = ['Arroz', 'Feijão', 'Macarrão'] precos = [5.99, 4.50, 3.75] for produto, preco in zip(produtos, precos): print(f'{produto} custa R${preco:.2f}')
No exemplo acima, a saída esperada seria:
-
- Arroz custa R$ 5,99;
- Feijão custa R$ 4,50;
- Macarrão custa R$ 3,75.
Nesse caso, o comando combinou os itens das listas de produtos e preços, o que permitiu iterar sobre os pares diretamente dentro do laço “for”.
Criar dicionários com zip()
Você também pode recorrer à função zip() para criar dicionários. Para isso, basta combinar duas listas, uma delas como a chave e a outra o valor correspondente.
Veja um exemplo:
nomes = ['Alice', 'Bob', 'Carlos'] idades = [25, 30, 35] dicionario = dict(zip(nomes, idades)) print(dicionario) Saída: {'Alice': 25, 'Bob': 30, 'Carlos': 35}
Nessa situação, os nomes são as chaves e as idades são os valores correspondentes.
Dicas avançadas e usos da função zip()
Além das funcionalidades básicas da função zip() em Python, existem algumas técnicas mais avançadas que podem ser úteis, especialmente em situações mais complexas ou quando é necessário ter maior controle sobre o processo.
Esse método é útil quando você lida com grande volume de informações ou precisa processar dados em servidores remotos, como em VPS.
Além de combinar listas, o Python também oferece recursos para trabalhar diretamente com arquivos compactados.
Por meio da biblioteca zipfile, é possível criar e extrair arquivos comprimidos no formato ZIP. Isso significa que você pode utilizar o comando python zip file para gerar e gerenciar esses arquivos dentro dos seus projetos.
Combinação com itertools.zip_longest()
Para combinar listas de tamanhos diferentes sem que o zip() interrompa a combinação no menor conjunto, é possível recorrer à função itertools.zip_longest().
O recurso permite que todos os elementos sejam combinados e preenche as lacunas com um valor padrão, como None, para as listas que forem menores.
Veja o exemplo:
from itertools import zip_longest lista1 = [1, 2, 3] lista2 = ['a', 'b'] resultado = zip_longest(lista1, lista2, fillvalue=None) for item in resultado: print(item) Saída: (1, 'a') (2, 'b') (3, None) Nesse exemplo, o comando zip_longest() combina as duas listas, mesmo que tenham tamanhos diferentes. O terceiro valor de lista1 foi emparelhado com None, já que lista2 não possui um terceiro elemento.
Usar zip() com enumerate()
Outra forma de usar o zip() é combiná-lo à função enumerate(). Isso permite que você obtenha não só os elementos emparelhados das listas, como o índice de cada item.
Veja um exemplo a seguir:
produtos = ['Arroz', 'Feijão', 'Macarrão'] precos = [5.99, 4.50, 3.75] for index, (produto, preco) in enumerate(zip(produtos, precos)): print(f'{index}: {produto} custa R${preco:.2f}')
Nesse caso, a saída esperada seria:
-
- 0: Arroz custa R$ 5,99;
- 1: Feijão custa R$ 4,50;
- 2: Macarrão custa R$ 3,75.
No exemplo anterior, o zip() foi utilizado para combinar a lista de produtos e preços e o enumerate() para obter o índice de cada combinação.
Agora que você já sabe como usar a função zip em Python, pode combinar listas e manipular dados de forma mais eficiente nos seus projetos!
Quer tornar o seu desenvolvimento ainda mais prático? Confira mais dicas aqui no Portal Ajuda.