A Função zip em Python: Um Guia Completo

Ana Maria Gomes
5 minutos de leitura

Conteúdos do tutorial

A função zip em Python é uma ferramenta poderosa e versátil que permite combinar elementos de duas ou mais sequências em uma única sequência de tuplas. Neste tutorial, vamos explorar como utilizar a função zip, suas aplicações práticas e algumas dicas avançadas para tirar o máximo proveito dessa funcionalidade.

O que é a Função zip em Python?

A função zip em Python é utilizada para combinar elementos de duas ou mais listas, tuplas ou outras sequências em pares ordenados. Ela cria um iterador que agrega elementos de cada uma das sequências fornecidas. Por exemplo, se tivermos duas listas, lista1 e lista2, a função zip pode combiná-las em uma lista de tuplas.

Exemplo Básico

lista1 = [1, 2, 3]
lista2 = ['a', 'b', 'c']
resultado = zip(lista1, lista2)
print(list(resultado))
Testar

Saída:

[(1, 'a'), (2, 'b'), (3, 'c')]

Como a Função zip Funciona

A função zip percorre as sequências fornecidas “lado a lado”, combinando os elementos correspondentes em tuplas. Se as sequências tiverem tamanhos diferentes, a iteração terminará quando a menor sequência for esgotada.

Exemplo com Sequências de Tamanhos Diferentes

lista1 = [1, 2, 3]
lista2 = ['a', 'b']
resultado = zip(lista1, lista2)
print(list(resultado))
Testar

Saída:

[(1, 'a'), (2, 'b')]

Usando zip com Mais de Duas Sequências

A função zip não se limita a apenas duas sequências. Você pode combiná-la com quantas sequências desejar.

Exemplo com Três Sequências

lista1 = [1, 2, 3]
lista2 = ['a', 'b', 'c']
lista3 = [True, False, True]
resultado = zip(lista1, lista2, lista3)
print(list(resultado))
Testar

Saída:

[(1, 'a', True), (2, 'b', False), (3, 'c', True)]

Aplicações Práticas da Função zip

A função zip é extremamente útil em diversas situações práticas, como iterar sobre múltiplas listas simultaneamente, criar dicionários e muito mais.

Iterando sobre Múltiplas Listas

nomes = ['Alice', 'Bob', 'Charlie']
idades = [25, 30, 35]
for nome, idade in zip(nomes, idades):
    print(f'{nome} tem {idade} anos.')
Testar

Saída:

Alice tem 25 anos.
Bob tem 30 anos.
Charlie tem 35 anos.

Criando Dicionários com zip

chaves = ['nome', 'idade', 'cidade']
valores = ['Alice', 25, 'São Paulo']
dicionario = dict(zip(chaves, valores))
print(dicionario)
Testar

Saída:

{'nome': 'Alice', 'idade': 25, 'cidade': 'São Paulo'}

Dicas Avançadas

Usando zip com enumerate

Você pode combinar zip com enumerate para iterar sobre índices e valores simultaneamente.

nomes = ['Alice', 'Bob', 'Charlie']
idades = [25, 30, 35]
for i, (nome, idade) in enumerate(zip(nomes, idades)):
    print(f'Índice {i}: {nome} tem {idade} anos.')
Testar

Saída:

Índice 0: Alice tem 25 anos.
Índice 1: Bob tem 30 anos.
Índice 2: Charlie tem 35 anos.

Usando zip com itertools

A biblioteca itertools oferece funções adicionais que podem ser combinadas com zip para manipulações mais avançadas.

import itertools

lista1 = [1, 2, 3]
lista2 = ['a', 'b', 'c']
resultado = itertools.zip_longest(lista1, lista2, fillvalue='N/A')
print(list(resultado))
Testar

Saída:

[(1, 'a'), (2, 'b'), (3, 'c')]

Conclusão

A função zip em Python é uma ferramenta essencial para qualquer programador que deseja combinar e iterar sobre múltiplas sequências de forma eficiente. Compreender como utilizá-la pode simplificar muito o seu código e abrir novas possibilidades para manipulação de dados. Experimente os exemplos fornecidos e veja como a função zip pode ser útil em seus próprios projetos.

Se você gostou deste tutorial sobre a função zip em Python, não deixe de compartilhar e deixar seus comentários abaixo. Feliz codificação!

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse:
Conteúdos do tutorial