Истовремено итерирање на секвенци во Python
За да итерирате истовремено низ повеќе
секвенци, можете да ја користите функцијата
zip. При тоа, сите елементи од
секвенците ќе бидат прикажани во
форма на торки, составени од елементи со
ист индекс.
Пример
Да претпоставиме дека имаме две листи:
lst1 = ['a', 'b', 'c']
lst2 = [1, 2, 3]
Ајде да ги испечатиме нивните елементи во парови:
for el in zip(lst1, lst2):
print(el)
Резултат од извршениот код:
('a', 1)
('b', 2)
('c', 3)
Пример
Може да итерирате и низ секвенци од
различен тип. Ајде да поминеме низ множество и торка користејќи
јамка и функцијата zip:
st = {'a', 'b', 'c'}
tlp = (1, 2, 3)
for el in zip(st, tlp):
print(el)
Резултат од извршениот код:
('a', 1)
('b', 2)
('c', 3)
Пример
Ако должината на едната секвенца е поголема од другата, тогаш итерирањето ќе се изврши до елементите на пократката:
lst1 = ['a', 'b', 'c', 'd', 'e']
lst2 = [1, 2, 3, 4]
for el in zip(lst1, lst2):
print(el)
Резултат од извршениот код:
('a', 1)
('b', 2)
('c', 3)
('d', 4)
Пример
Со функцијата zip може да итерирате
и низ три секвенци. За да го направите ова, во
параметрите на функцијата ги наведуваме сите нив разделени со
запирка:
lst1 = ['a1', 'b1', 'c1']
lst2 = ['a2', 'b2', 'c2']
lst3 = ['a3', 'b3', 'c3']
for el in zip(lst1, lst2, lst3):
print(el)
Резултат од извршениот код:
('a1', 'a2', 'a3')
('b1', 'b2', 'b3')
('c1', 'c2', 'c3')
Практични задачи
Дадени се две листи:
tst1 = [1, 3, 5]
tst2 = [2, 4, 6]
Испечатете ги нивните елементи во парови во форма на торка.
Дадени се две листи:
tst1 = ['a', 'b', 'c']
tst2 = ['d', 'e', 'f']
Добијте од нив следнава листа:
['a', '1', 'b', '2', 'c', '3']
Дадени се три листи:
tst1 = [11, 12, 13, 14]
tst2 = [21, 22, 23, 24]
tst3 = [31, 32, 33, 34]
Соберете ги соодветните елементи од овие листи и резултатот запишете го во нова листа. Собирањето ќе се изврши според следниот принцип:
[
11 + 21 + 31,
12 + 22 + 32,
13 + 23 + 33,
14 + 24 + 34,
]