zip() en Python

El método zip() de Python toma iterables o contenedores y devuelve un solo objeto iterador, con valores asignados de todos los contenedores. 

Se usa para mapear el índice similar de múltiples contenedores para que puedan usarse solo usando una sola entidad. 

Sintaxis:  zip(*iteradores) 

Parámetros: Python iterables o contenedores (lista, string, etc.) 
Valor de retorno:  Devuelve un solo objeto iterador, con valores asignados de todos los 
contenedores.

Ejemplo de Python zip()

Ejemplo 1: Python zip dos listas

Python3

name = [ "Manjeet", "Nikhil", "Shambhavi", "Astha" ]
roll_no = [ 4, 1, 3, 2 ]
 
# using zip() to map values
mapped = zip(name, roll_no)
 
print(set(mapped))

Producción:

{('Shambhavi', 3), ('Nikhil', 1), ('Astha', 2), ('Manjeet', 4)}

Ejemplo 2: enumeración zip de Python

Python3

names = ['Mukesh', 'Roni', 'Chari']
ages = [24, 50, 18]
 
for i, (name, age) in enumerate(zip(names, ages)):
    print(i, name, age)

Producción:

0 Mukesh 24
1 Roni 50
2 Chari 18

Ejemplo 3: Diccionario Python zip()

Python3

stocks = ['reliance', 'infosys', 'tcs']
prices = [2175, 1127, 2750]
 
new_dict = {stocks: prices for stocks,
            prices in zip(stocks, prices)}
print(new_dict)

Producción:

{'reliance': 2175, 'infosys': 1127, 'tcs': 2750}

¿Cómo descomprimir? 

Descomprimir significa convertir los valores comprimidos de nuevo al yo individual tal como estaban. Esto se hace con la ayuda del operador » * «.

Python3

# Python code to demonstrate the working of
# unzip
 
# initializing lists
name = ["Manjeet", "Nikhil", "Shambhavi", "Astha"]
roll_no = [4, 1, 3, 2]
marks = [40, 50, 60, 70]
 
# using zip() to map values
mapped = zip(name, roll_no, marks)
 
# converting values to print as list
mapped = list(mapped)
 
# printing resultant values
print("The zipped result is : ", end="")
print(mapped)
 
print("\n")
 
# unzipping values
namz, roll_noz, marksz = zip(*mapped)
 
print("The unzipped result: \n", end="")
 
# printing initial lists
print("The name list is : ", end="")
print(namz)
 
print("The roll_no list is : ", end="")
print(roll_noz)
 
print("The marks list is : ", end="")
print(marksz)

Producción: 

The zipped result is : [('Manjeet', 4, 40), ('Nikhil', 1, 50), 
('Shambhavi', 3, 60), ('Astha', 2, 70)]


The unzipped result: 
The name list is : ('Manjeet', 'Nikhil', 'Shambhavi', 'Astha')
The roll_no list is : (4, 1, 3, 2)
The marks list is : (40, 50, 60, 70)

Aplicaciones prácticas

Hay muchas aplicaciones posibles de las que se puede decir que se ejecutan usando zip, ya sea una base de datos de estudiantes o un cuadro de mando o cualquier otra utilidad que requiera el mapeo de grupos. A continuación se muestra un pequeño ejemplo de cuadro de mando. 

Python3

# Python code to demonstrate the application of
# zip()
 
# initializing list of players.
players = ["Sachin", "Sehwag", "Gambhir", "Dravid", "Raina"]
 
# initializing their scores
scores = [100, 15, 17, 28, 43]
 
# printing players and scores.
for pl, sc in zip(players, scores):
    print("Player :  %s     Score : %d" % (pl, sc))

Producción: 

Player :  Sachin     Score : 100
Player :  Sehwag     Score : 15
Player :  Gambhir     Score : 17
Player :  Dravid     Score : 28
Player :  Raina     Score : 43

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *