Iterarea simultană a secvențelor în Python

Pentru a itera simultan mai multe secvențe, poți folosi funcția zip. În acest caz, toate elementele secvențelor vor fi afișate sub formă de tupluri, formate din elemente cu același index.

Exemplu

Să presupunem că avem două liste:

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

Să afișăm elementele lor pereche:

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

Rezultatul codului executat:

python('a', 1)
('b', 2)
('c', 3)

Exemplu

Poți itera și secvențe de tipuri diferite. Să trecem prin buclă și funcția zip o mulțime și un tuplu:

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

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

Rezultatul codului executat:

python('a', 1)
('b', 2)
('c', 3)

Exemplu

Dacă lungimea unei secvențe este mai mare decât a celei de-a doua, atunci ele vor fi iterate după elementele celei mai mici:

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

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

Rezultatul codului executat:

python('a', 1)
('b', 2)
('c', 3)
('d', 4)

Exemplu

Cu funcția zip poți itera și trei secvențe. Pentru aceasta, în parametrii funcției le enumerăm pe toate prin virgulă:

pythonlst1 = ['a1', 'b1', 'c1']
lst2 = ['a2', 'b2', 'c2']
lst3 = ['a3', 'b3', 'c3']

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

Rezultatul codului executat:

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

Probleme practice

Задание 1

Sunt date două liste:

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

Afișați elementele lor pereche sub formă de tuplu.

Задание 2

Sunt date două liste:

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

Obțineți din ele următoarea listă:

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

Sunt date trei liste:

pythontst1 = [11, 12, 13, 14]
tst2 = [21, 22, 23, 24]
tst3 = [31, 32, 33, 34]

Adunați elementele corespunzătoare ale acestor liste și scrieți rezultatul într-o listă nouă. Sumarea va avea loc după următorul principiu:

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