zip(): Unindo Listas Elemento a Elemento

Publicado:
Atualizado:
PorJeferson Peter
2 min de leitura
Python
Compartilhe este post:

Um dos padrões mais comuns em Python é iterar sobre duas (ou mais) sequências ao mesmo tempo.
Listas de nomes e notas, IDs e valores, chaves e rótulos — isso aparece o tempo todo.

A função zip() existe exatamente para isso: combinar iteráveis de forma clara e legível, sem depender de índices ou controle manual.


Quando o zip() realmente faz sentido

O zip() é ideal quando:

  • Você precisa iterar sobre múltiplas sequências em paralelo
  • A relação entre os elementos é posicional
  • Quer evitar range(len(...)) e manipulação de índices

Ele deixa a intenção explícita: esses valores pertencem um ao outro.


Um padrão comum sem zip()

names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]

for i in range(len(names)):
    print(names[i], scores[i])

Funciona, mas depende de:

  • listas com o mesmo tamanho
  • indexação manual
  • mais esforço mental

O mesmo loop com zip()

names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]

for name, score in zip(names, scores):
    print(name, score)

Agora a relação fica clara:

  • name corresponde a score
  • sem índices
  • menos chance de erro

Trabalhando com mais de dois iteráveis

O zip() escala naturalmente:

names = ["Alice", "Bob", "Charlie"]
scores = [85, 92, 78]
ages = [25, 30, 28]

for name, score, age in zip(names, scores, ages):
    print(name, score, age)

Desde que a relação posicional faça sentido, o código continua legível.


Um cuidado importante

O zip() para no iterável mais curto:

names = ["Alice", "Bob", "Charlie"]
scores = [85, 92]

list(zip(names, scores))
# [('Alice', 85), ('Bob', 92)]

Se tamanhos diferentes indicarem um erro, vale validar antes ou usar itertools.zip_longest.


Conclusão

No código do dia a dia, o zip() é uma dessas ferramentas que melhoram a clareza sem chamar atenção.

Sempre que você estiver iterando sobre múltiplas listas por índice, vale se perguntar: o zip() deixaria isso mais claro?

Na maioria das vezes, sim.

Compartilhe este post:
zip(): Unindo Listas Elemento a Elemento | CodeCraftPython