Функция zip
La función zip crea un iterador
que combina elementos de secuencias
(listas, tuplas, conjuntos). La función
devuelve un iterador en el que todos los elementos
de la primera y segunda secuencia se fusionan
juntos en orden. En el parámetro de la función
especificamos todas las tuplas, listas,
conjuntos, etc. que nos interesen.
Sintaxis
zip(primera secuencia, segunda secuencia, etc.)
Ejemplo
Usemos la función zip para crear
una nueva tupla basada en dos originales:
tlp1 = ('a', 'b', 'c')
tlp2 = (1, 2, 3)
res = zip(tlp1, tlp2)
print(tuple(res))
Resultado de la ejecución del código:
(('a', 1), ('b', 2), ('c', 3))
Ejemplo
Ahora usemos la función zip
para crear una nueva tupla basada en dos listas:
lst1 = ['d', 'e', 'f']
lst2 = [4, 5, 6]
res = zip(lst1, lst2)
print(tuple(res))
Resultado de la ejecución del código:
(('d', 4), ('e', 5), ('f', 6))
Ejemplo
Creemos una tupla a partir de dos conjuntos:
st1 = {'a', 'b', 'c'}
st2 = {'d', 'e', 'f'}
res = zip(st1, st2)
print(tuple(res))
Resultado de la ejecución del código:
(('a', 'd'), ('c', 'e'), ('b', 'f'))
Ejemplo
Ahora creemos una tupla a partir de tres conjuntos:
st1 = {'a', 'b', 'c'}
st2 = {'d', 'e', 'f'}
st3 = {1, 2, 3}
res = zip(st1, st2, st3)
print(tuple(res))
Resultado de la ejecución del código:
(('c', 'f', 1), ('b', 'd', 2), ('a', 'e', 3))
Ejemplo
Con la función zip se pueden
recorrer varios objetos simultáneamente.
Recorramos tres listas como ejemplo:
lst1 = [1, 2, 3]
lst2 = [4, 5, 6]
lst3 = [7, 8, 9]
for el1, el2, el3 in zip(lst1, lst2, lst3):
print(el1, el2, el3)
Resultado de la ejecución del código:
1 4 7
2 5 8
3 6 9