Iteración simultánea de secuencias en Python
Para iterar múltiples secuencias a la vez,
puedes usar la función
zip. En este caso, todos los elementos
de las secuencias se mostrarán en forma de
tuplas, consistiendo en elementos con el
mismo índice.
Ejemplo
Supongamos que tenemos dos listas:
lst1 = ['a', 'b', 'c']
lst2 = [1, 2, 3]
Mostremos sus elementos en pares:
for el in zip(lst1, lst2):
print(el)
Resultado del código ejecutado:
('a', 1)
('b', 2)
('c', 3)
Ejemplo
También se pueden iterar secuencias de
diferentes tipos. Pasemos un conjunto y una tupla
a través del ciclo y la función zip:
st = {'a', 'b', 'c'}
tlp = (1, 2, 3)
for el in zip(st, tlp):
print(el)
Resultado del código ejecutado:
('a', 1)
('b', 2)
('c', 3)
Ejemplo
Si la longitud de una secuencia es mayor que la de la segunda, la iteración se realizará hasta los elementos de la más corta:
lst1 = ['a', 'b', 'c', 'd', 'e']
lst2 = [1, 2, 3, 4]
for el in zip(lst1, lst2):
print(el)
Resultado del código ejecutado:
('a', 1)
('b', 2)
('c', 3)
('d', 4)
Ejemplo
Con la función zip también se pueden iterar
tres secuencias. Para ello, en el parámetro de
la función las enumeramos todas separadas por
coma:
lst1 = ['a1', 'b1', 'c1']
lst2 = ['a2', 'b2', 'c2']
lst3 = ['a3', 'b3', 'c3']
for el in zip(lst1, lst2, lst3):
print(el)
Resultado del código ejecutado:
('a1', 'a2', 'a3')
('b1', 'b2', 'b3')
('c1', 'c2', 'c3')
Tareas prácticas
Dadas dos listas:
tst1 = [1, 3, 5]
tst2 = [2, 4, 6]
Muestra sus elementos en pares en forma de tupla.
Dadas dos listas:
tst1 = ['a', 'b', 'c']
tst2 = ['d', 'e', 'f']
Obtén de ellas la siguiente lista:
['a', '1', 'b', '2', 'c', '3']
Dadas tres listas:
tst1 = [11, 12, 13, 14]
tst2 = [21, 22, 23, 24]
tst3 = [31, 32, 33, 34]
Suma los elementos correspondientes de estas listas y escribe el resultado en una nueva lista. La suma se realizará según el siguiente principio:
[
11 + 21 + 31,
12 + 22 + 32,
13 + 23 + 33,
14 + 24 + 34,
]