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:
lst1 = ['a', 'b', 'c']
lst2 = [1, 2, 3]
Išveskime jų elementus poromis:
for el in zip(lst1, lst2):
print(el)
Vykdymo rezultatas:
('a', 1)
('b', 2)
('c', 3)
Pavyzdys
Galima iteruoti ir skirtingų tipų sekas.
Praleiskime per ciklą
ir funkciją zip aibę ir kortežą:
st = {'a', 'b', 'c'}
tlp = (1, 2, 3)
for el in zip(st, tlp):
print(el)
Vykdymo rezultatas:
('a', 1)
('b', 2)
('c', 3)
Pavyzdys
Jei vienos sekos ilgis didesnis už antrosios, jos bus iteruojamos pagal trumpesnės sekos elementus:
lst1 = ['a', 'b', 'c', 'd', 'e']
lst2 = [1, 2, 3, 4]
for el in zip(lst1, lst2):
print(el)
Vykdymo rezultatas:
('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į:
lst1 = ['a1', 'b1', 'c1']
lst2 = ['a2', 'b2', 'c2']
lst3 = ['a3', 'b3', 'c3']
for el in zip(lst1, lst2, lst3):
print(el)
Vykdymo rezultatas:
('a1', 'a2', 'a3')
('b1', 'b2', 'b3')
('c1', 'c2', 'c3')
Praktinės užduotys
Duoti du sąrašai:
tst1 = [1, 3, 5]
tst2 = [2, 4, 6]
Išveskite jų elementus poromis kortežo pavidalu.
Duoti du sąrašai:
tst1 = ['a', 'b', 'c']
tst2 = ['d', 'e', 'f']
Gaukite iš jų tokį sąrašą:
['a', '1', 'b', '2', 'c', '3']
Duoti trys sąrašai:
tst1 = [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:
[
11 + 21 + 31,
12 + 22 + 32,
13 + 23 + 33,
14 + 24 + 34,
]