Истовремено итерирање на секвенци во Python

За да итерирате истовремено низ повеќе секвенци, можете да ја користите функцијата zip. При тоа, сите елементи од секвенците ќе бидат прикажани во форма на торки, составени од елементи со ист индекс.

Пример

Да претпоставиме дека имаме две листи:

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

Ајде да ги испечатиме нивните елементи во парови:

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

Резултат од извршениот код:

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

Пример

Може да итерирате и низ секвенци од различен тип. Ајде да поминеме низ множество и торка користејќи јамка и функцијата zip:

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

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

Резултат од извршениот код:

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

Пример

Ако должината на едната секвенца е поголема од другата, тогаш итерирањето ќе се изврши до елементите на пократката:

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

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

Резултат од извршениот код:

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

Пример

Со функцијата zip може да итерирате и низ три секвенци. За да го направите ова, во параметрите на функцијата ги наведуваме сите нив разделени со запирка:

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

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

Резултат од извршениот код:

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

Практични задачи

Задание 1

Дадени се две листи:

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

Испечатете ги нивните елементи во парови во форма на торка.

Задание 2

Дадени се две листи:

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

Добијте од нив следнава листа:

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

Дадени се три листи:

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

Соберете ги соодветните елементи од овие листи и резултатот запишете го во нова листа. Собирањето ќе се изврши според следниот принцип:

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