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:

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

Izvadīsim to elementus pa pāriem:

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

Koda izpildes rezultāts:

python('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:

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

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

Koda izpildes rezultāts:

python('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:

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

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

Koda izpildes rezultāts:

python('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:

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

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

Koda izpildes rezultāts:

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

Praktiskie uzdevumi

Задание 1

Doti divi saraksti:

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

Izvadiet to elementus pa pāriem tuple veidā.

Задание 2

Doti divi saraksti:

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

Iegūstiet no tiem šādu sarakstu:

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

Doti trīs saraksti:

pythontst1 = [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:

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