Iterar con zip
zip
es una función en Python que se utiliza para combinar elementos de varias secuencias (por ejemplo, listas, tuplas, etc.) en una sola secuencia de tuplas. La cabecera de la función zip
es la siguiente:
iterables
: Una secuencia o varias secuencias que se quieren combinar.
Ejemplo:
En este ejemplo, estamos combinando los elementos de las listas colors
y codes
en una sola lista de tuplas color_codes
.
Es importante destacar que zip
genera un objeto de tipo zip
, no una lista. Para convertirlo en una lista, se puede utilizar la función list
.
Iterar con zip
en Python es muy similar a iterar con enumerate
, con la diferencia de que zip
combina varias secuencias en lugar de mantener un registro del índice.
Ejemplo:
En este ejemplo, estamos iterando sobre las dos secuencias colors
y codes
utilizando zip
. Cada iteración del bucle for
asigna una tupla de elementos correspondientes a color
y code
.
zip() con diccionarios
Hasta ahora nos hemos limitado a usar zip
con listas, pero la función está definida para cualquier clase iterable. Por lo tanto podemos usarla también con diccionarios.
Si realizamos lo siguiente, a,b
toman los valores de las key del diccionario. Tal vez algo no demasiado interesante.
Sin embargo, si hacemos uso de la función items, podemos acceder al key y value de cada elemento.
Nótese que en este caso ambas key k1
y k2
son iguales.
Deshacer el zip()
Con un pequeño truco, es posible deshacer el zip
en una sola línea de código. Supongamos que hemos usado zip
para obtener c
.
¿Es posible obtener a
y b
desde c
? Sí, tan sencillo como:
Nótese el uso de *c
, lo que es conocido como unpacking en Python.
Last updated