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_longestpara Listas Desiguais: Caso precise preservar todos os elementos de listas com tamanhos diferentes, utilizeitertools.zip_longest(), que preenche os valores ausentes comNone(ou um valor padrão configurado no parâmetrofillvalue). - Conversão Direta para Dicionários: Ao passar o resultado do
zip()de duas listas para a funçãodict(), 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
Postar um comentário