Ir para o conteúdo
PyPro PyPro
Artigos Cursos Projetos Missão Sobre nós Contato

Dicas Pythônicas

Usando zip para Percorrer Duas Listas em Python

Essa técnica é particularmente útil quando você precisa iterar simultaneamente sobre dois conjuntos de dados relacionados.

Por Dilermando Piva Jr. · 27/01/2025

Olá, caro leitor! Seja muito bem-vindo a mais uma edição da "Dicas Pythonicas".

Aqui no pyPRO, estamos sempre compartilhando dicas práticas para ajudar você a escrever código Python mais eficiente e elegante.

E hoje, vamos desvendar uma técnica que vai fazer você se perguntar: "Como eu não conhecia isso antes?"

Imagine que você tem duas listas: uma com nomes de pessoas e outra com suas cores favoritas. Sua missão é exibir uma mensagem conectando cada pessoa à sua cor correspondente. A primeira ideia que vem à mente é usar índices e loops manuais, mas Python tem um truque na manga para tornar isso simples, rápido e intuitivo.

Vamos direto ao ponto com um exemplo prático:

 

Código Revelador: Conectando Pessoas e Cores

# Usando zip() para unir duas listas como parceiras de dança 💃🕺

cores = ['verde', 'azul', 'amarela']

pessoas = ['Adriana', 'Junior', 'Maria das Graças']

for cor, pessoa in zip(cores, pessoas):

    print(f'{pessoa} gosta da cor {cor}')

 

Saída:

Adriana gosta da cor verde

Junior gosta da cor azul

Maria das Graças gosta da cor amarela

 

Entendendo a Magia por Trás do zip()

A função zip() atua como um "costurador" de dados: ela pega elementos de diferentes listas e os une em pares perfeitos, como peças de um quebra-cabeça 🧩. Cada tupla gerada contém um elemento de cada lista, na mesma posição.

  • Como Funciona?
    • zip(cores, pessoas) cria um iterador que combina as duas listas:
      • Primeiro par: ('verde', 'Adriana')
      • Segundo par: ('azul', 'Junior')
      • Terceiro par: ('amarela', 'Maria das Graças')
    • No loop for, desempacotamos cada tupla em cor e pessoa, permitindo um acesso direto e sincronizado.

 

Vantagens que Você Não Pode Ignorar

  • Código Limpo e Legível
    • Elimina a necessidade de índices como pessoas[i] e cores[i], reduzindo o risco de erros e tornando o código mais expressivo.
  • Eficiência com Estilo
    • Imagine percorrer listas com milhares de elementos. O zip() processa tudo em um único passo, sem desperdício de recursos.
  • Flexibilidade Além de Duas Listas
    • Funciona com 3, 4, ou quantas listas você precisar! Experimente:

 

frutas = ['maçã', 'banana', 'uva']

preços = [2.50, 1.80, 4.00]

mercados = ['Super A', 'Feira Livre', 'Hortifruti']

for fruta, preço, mercado in zip(frutas, preços, mercados):

    print(f'{fruta} custa R${preço} no {mercado}')

 

Cuidados e Curiosidades

⚠️ Listas de Tamanhos Diferentes?
O zip() para no final da menor lista. Se suas listas forem assimétricas e você quiser incluir todos os elementos, use itertools.zip_longest (mas isso é assunto para um próximo artigo!).

💡 Dica Bônus:
Use zip() para criar dicionários de forma instantânea:

 

dicionario_cores = dict(zip(pessoas, cores))

print(dicionario_cores)

# Saída: {'Adriana': 'verde', 'Junior': 'azul', 'Maria das Graças': 'amarela'}

 

Inspiração para Seu Próximo Projeto

Agora que você domina o zip(), que tal usá-lo para:

  • Combinar colunas de diferentes planilhas em um relatório integrado 📊.
  • Sincronizar dados de sensores em um projeto de IoT 🔧.
  • Simplificar a criação de gráficos com eixos X e Y 📈.

O limite é sua criatividade!

Espero que esta dica inspire você a utilizar zip em seus projetos para simplificar loops e tornar seu código mais Pythonico.

Fique ligado na próxima edição, onde traremos mais dicas para aprimorar suas habilidades!

Um forte abraço,

 

Prof. Dr. Dilermando Piva Jr.
Idealizador do pyPRO
Visite: https://pypro.com.br para mais informações sobre Python, Ciência de Dados e Git/GitHub.

← Voltar para artigos

pyPRO - Python para todos.

Instagram YouTube LinkedIn X (Twitter)