Vienlaicīga secību apstaigāšana Python
Lai vienlaicīgi apstaigātu vairākas
secības, var izmantot funkciju
zip. Šajā gadījumā visi secību
elementi tiks izvadīti
kā tuple, kas sastāv no elementiem ar
identisku indeksu.
Piemērs
Pieņemsim, ka mums ir divi saraksti:
lst1 = ['a', 'b', 'c']
lst2 = [1, 2, 3]
Izvadīsim to elementus pa pāriem:
for el in zip(lst1, lst2):
print(el)
Koda izpildes rezultāts:
('a', 1)
('b', 2)
('c', 3)
Piemērs
Var apstaigāt arī dažāda veida
secības. Ilaidīsim cauri ciklam
un funkcijai zip kopu un tuple:
st = {'a', 'b', 'c'}
tlp = (1, 2, 3)
for el in zip(st, tlp):
print(el)
Koda izpildes rezultāts:
('a', 1)
('b', 2)
('c', 3)
Piemērs
Ja vienas secības garums ir lielāks par otras, tad tās tiks apstaigātas pēc īsākās elementiem:
lst1 = ['a', 'b', 'c', 'd', 'e']
lst2 = [1, 2, 3, 4]
for el in zip(lst1, lst2):
print(el)
Koda izpildes rezultāts:
('a', 1)
('b', 2)
('c', 3)
('d', 4)
Piemērs
Izmantojot funkciju zip, var apstaigāt
arī trīs secības. Lai to izdarītu, funkcijas
parametrā uzskaitām tās visas, atdalot ar
komatu:
lst1 = ['a1', 'b1', 'c1']
lst2 = ['a2', 'b2', 'c2']
lst3 = ['a3', 'b3', 'c3']
for el in zip(lst1, lst2, lst3):
print(el)
Koda izpildes rezultāts:
('a1', 'a2', 'a3')
('b1', 'b2', 'b3')
('c1', 'c2', 'c3')
Praktiskie uzdevumi
Doti divi saraksti:
tst1 = [1, 3, 5]
tst2 = [2, 4, 6]
Izvadiet to elementus pa pāriem tuple veidā.
Doti divi saraksti:
tst1 = ['a', 'b', 'c']
tst2 = ['d', 'e', 'f']
Iegūstiet no tiem šādu sarakstu:
['a', '1', 'b', '2', 'c', '3']
Doti trīs saraksti:
tst1 = [11, 12, 13, 14]
tst2 = [21, 22, 23, 24]
tst3 = [31, 32, 33, 34]
Saskaitiet atbilstošos šo sarakstu elementus un rezultātu ierakstiet jaunā sarakstā. Summēšana notiks pēc šāda principa:
[
11 + 21 + 31,
12 + 22 + 32,
13 + 23 + 33,
14 + 24 + 34,
]