Vienalaikis sekų iteravimas Python kalba

Kad vienu metu iteruotumėte kelias sekas, galite pritaikyti funkciją zip. Tokiu atveju visi sekų elementai bus rodomi kaip kortežai, susidedantys iš elementų su vienodu indeksu.

Pavyzdys

Tarkime, kad turime du sąrašus:

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

Išveskime jų elementus poromis:

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

Vykdymo rezultatas:

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

Pavyzdys

Galima iteruoti ir skirtingų tipų sekas. Praleiskime per ciklą ir funkciją zip aibę ir kortežą:

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

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

Vykdymo rezultatas:

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

Pavyzdys

Jei vienos sekos ilgis didesnis už antrosios, jos bus iteruojamos pagal trumpesnės sekos elementus:

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

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

Vykdymo rezultatas:

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

Pavyzdys

Naudojant funkciją zip galima iteruoti ir tris sekas. Tam funkcijos parametre išvardijame jas visas per kablelį:

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

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

Vykdymo rezultatas:

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

Praktinės užduotys

Задание 1

Duoti du sąrašai:

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

Išveskite jų elementus poromis kortežo pavidalu.

Задание 2

Duoti du sąrašai:

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

Gaukite iš jų tokį sąrašą:

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

Duoti trys sąrašai:

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

Sudėkite atitinkamus šių sąrašų elementus ir rezultatą įrašykite į naują sąrašą. Sumavimas vyks tokiu principu:

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