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:

pythonlst1 = ['a', 'b', 'c']
lst2 = [1, 2, 3]

Mostremos sus elementos en pares:

pythonfor el in zip(lst1, lst2):
  print(el)

Resultado del código ejecutado:

python('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:

pythonst = {'a', 'b', 'c'}
tlp = (1, 2, 3)

for el in zip(st, tlp):
  print(el)

Resultado del código ejecutado:

python('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:

pythonlst1 = ['a', 'b', 'c', 'd', 'e']
lst2 = [1, 2, 3, 4]

for el in zip(lst1, lst2):
  print(el)

Resultado del código ejecutado:

python('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:

pythonlst1 = ['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:

python('a1', 'a2', 'a3')
('b1', 'b2', 'b3')
('c1', 'c2', 'c3')

Tareas prácticas

Задание 1

Dadas dos listas:

pythontst1 = [1, 3, 5]
tst2 = [2, 4, 6]

Muestra sus elementos en pares en forma de tupla.

Задание 2

Dadas dos listas:

pythontst1 = ['a', 'b', 'c']
tst2 = ['d', 'e', 'f']

Obtén de ellas la siguiente lista:

python['a', '1', 'b', '2', 'c', '3']
Задание 3

Dadas tres listas:

pythontst1 = [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:

python[
  11 + 21 + 31,
  12 + 22 + 32,
  13 + 23 + 33,
  14 + 24 + 34,
]