1. Home
  2. VPS Locaweb
  3. Como usar a função zip() no Python?

Como usar a função zip() no Python?

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.

Este artigo foi útil ?

Artigos relacionados