Mitme jada samaaegne läbimine Pythonis
Mitme jada samaaegseks läbimiseks saab kasutada funktsiooni
zip. Sel juhul kuvatakse kõik jadade elemendid
kujul ennikud, mis koosnevad samale indeksile vastavatest
elementidest.
Näide
Olgu meil kaks loendit:
lst1 = ['a', 'b', 'c']
lst2 = [1, 2, 3]
Väljastame nende elemendid paarikaupa:
for el in zip(lst1, lst2):
print(el)
Koodi täitmise tulemus:
('a', 1)
('b', 2)
('c', 3)
Näide
Läbida saab ka erinevat tüüpi jadasid. Lähme läbi for-tsükliga
ja funktsiooniga zip hulga ja enniku:
st = {'a', 'b', 'c'}
tlp = (1, 2, 3)
for el in zip(st, tlp):
print(el)
Koodi täitmise tulemus:
('a', 1)
('b', 2)
('c', 3)
Näide
Kui ühe jada pikkus on teisest suurem, siis läbitakse need väiksema jada elementide arvu järgi:
lst1 = ['a', 'b', 'c', 'd', 'e']
lst2 = [1, 2, 3, 4]
for el in zip(lst1, lst2):
print(el)
Koodi täitmise tulemus:
('a', 1)
('b', 2)
('c', 3)
('d', 4)
Näide
Funktsiooniga zip saab läbida ka kolm jada. Selleks loetleme
funktsiooni parameetrites kõik need komadega eraldatult:
lst1 = ['a1', 'b1', 'c1']
lst2 = ['a2', 'b2', 'c2']
lst3 = ['a3', 'b3', 'c3']
for el in zip(lst1, lst2, lst3):
print(el)
Koodi täitmise tulemus:
('a1', 'a2', 'a3')
('b1', 'b2', 'b3')
('c1', 'c2', 'c3')
Praktilised ülesanded
Antud kaks loendit:
tst1 = [1, 3, 5]
tst2 = [2, 4, 6]
Väljastage nende elemendid paarikaupa enniku kujul.
Antud kaks loendit:
tst1 = ['a', 'b', 'c']
tst2 = ['d', 'e', 'f']
Saage neist järgmine loend:
['a', '1', 'b', '2', 'c', '3']
Antud kolm loendit:
tst1 = [11, 12, 13, 14]
tst2 = [21, 22, 23, 24]
tst3 = [31, 32, 33, 34]
Liida kokku vastavad nende loendite elemendid ja kirjuta tulemus uude loendisse. Liitmine toimub järgmisel põhimõttel:
[
11 + 21 + 31,
12 + 22 + 32,
13 + 23 + 33,
14 + 24 + 34,
]