Como agrupar duas listas em pares de valores usando zip() em Python

Como agrupar duas listas em pares de valores usando zip() em Python

A função nativa zip() permite combinar elementos de duas ou mais sequências iteráveis em pares ordenados de forma simples e direta. Ela é ideal para relacionar dados correlacionados — como nomes e idades —, eliminando a necessidade de controlar índices manualmente ou criar estruturas de repetição complexas.

Python
# Listas de entrada com dados relacionados
nomes = ["Ana", "Bruno", "Carla", "Daniel"]
idades = [25, 30, 22, 35]

# 1. Combinação básica: Gera um iterador de tuplas com os pares (Nome, Idade)
pares_tuplas = list(zip(nomes, idades))

# 2. Conversão direta para Dicionário: Transforma a primeira lista em chave e a segunda em valor
dicionario_pessoas = dict(zip(nomes, idades))

# Exemplo prático de uso / saída
print("--- Lista de Tuplas ---")
print(pares_tuplas)

print("\n--- Dicionário Gerado ---")
print(dicionario_pessoas)

# Iteração prática recebendo os dois valores desempacotados no loop
print("\n--- Iteração com zip() ---")
for nome, idade in zip(nomes, idades):
    print(f"{nome} tem {idade} anos.")

Pontos-chave

  • Parada pelo Menor Tamanho (Truncamento): Se as listas tiverem comprimentos diferentes, o zip() interromperá a combinação assim que atingir o fim da menor lista, descartando os elementos excedentes da lista maior sem lançar erros.

  • Uso de zip_longest para Listas Desiguais: Caso precise preservar todos os elementos de listas com tamanhos diferentes, utilize itertools.zip_longest(), que preenche os valores ausentes com None (ou um valor padrão configurado no parâmetro fillvalue).

  • Conversão Direta para Dicionários: Ao passar o resultado do zip() de duas listas para a função dict(), o Python mapeia automaticamente o primeiro iterável como chave e o segundo como valor.

  • Descompactação (Unzipping): É possível reverter o processo de agrupamento utilizando o operador de desempacotamento * combinado com a própria função: nomes_recuperados, idades_recuperadas = zip(*pares_tuplas).

Comentários

Postagens mais visitadas deste blog

Gerando Relatórios em PDF com Python (ReportLab e FPDF)

Python para Computação Quântica: Introdução com Qiskit

C# e Banco de Dados: Como Conectar e Realizar Operações com SQL Server