Como usar a função zip() do Python para combinar dados

A função zip() em Python é uma ferramenta poderosa para combinar iteráveis ​​(como listas ou tuplas) em um único iterável. Esta função pode ser particularmente útil quando você precisa parear elementos de várias sequências. Neste artigo, exploraremos como usar zip() para combinar dados de forma eficiente.

O que é a função zip()?

A função zip() recebe vários iteráveis ​​como argumentos e retorna um iterador de tuplas. Cada tupla contém elementos da posição correspondente dos iteráveis ​​de entrada. Isso é útil para combinar dados de sequências paralelas.

Uso básico

Aqui está um exemplo simples de como usar zip() para combinar duas listas:

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']

zipped = zip(list1, list2)
print(list(zipped))

Saída:

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

Neste exemplo, list1 e list2 são combinados elemento por elemento, criando uma lista de tuplas.

Manipulando Iteráveis ​​de Diferentes Comprimentos

Se os iteráveis ​​de entrada tiverem comprimentos diferentes, zip() para de criar tuplas quando o iterável mais curto se esgota. Aqui está um exemplo:

list1 = [1, 2, 3, 4]
list2 = ['a', 'b', 'c']

zipped = zip(list1, list2)
print(list(zipped))

Saída:

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

Observe que a tupla contendo '4' não está incluída porque list2 não tem um elemento correspondente.

Descompactando dados

Você também pode usar zip() para descompactar uma lista de tuplas. Isso envolve separar os dados combinados de volta em listas individuais:

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

list1, list2 = zip(*zipped)
print(list1)
print(list2)

Saída:

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

Aqui, o operador * é usado para descompactar a lista de tuplas, e zip() é usado para agrupar os elementos correspondentes novamente em tuplas separadas.

Aplicações práticas

A função zip() é frequentemente usada em cenários práticos como:

  • Combinando dados de listas paralelas, por exemplo, nomes e idades.
  • Criando dicionários a partir de duas listas, onde uma lista contém chaves e a outra contém valores.
  • Iterando sobre múltiplas listas em paralelo em um loop.

Exemplo: Criando um dicionário

Aqui está um exemplo de uso de zip() para criar um dicionário a partir de duas listas:

keys = ['name', 'age', 'city']
values = ['Alice', 30, 'New York']

dictionary = dict(zip(keys, values))
print(dictionary)

Saída:

{'name': 'Alice', 'age': 30, 'city': 'New York'}

Neste exemplo, zip() emparelha cada chave com seu valor correspondente, e a função dict() converte os pares em um dicionário.

Conclusão

A função zip() é uma ferramenta versátil para combinar e gerenciar dados em Python. Não importa se você está mesclando listas, descompactando dados ou criando dicionários, entender como usar zip() efetivamente pode simplificar seu código e aprimorar suas habilidades de programação.