Pythonda ketma-ketliklarni bir vaqtda takrorlash

Bir vaqtning o'zida bir nechta ketma-ketlikni takrorlash uchun siz zip funktsiyasidan foydalanishingiz mumkin. Bunday holda, ketma-ketlikning barcha elementlari bir xil indeksli elementlardan tashkil topgan kortejlar shaklida chiqariladi.

1-misol

Aytaylik, bizda ikkita ro'yxat bor:

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

Keling, ularning elementlarini juft bo'lib ko'rsatamiz:

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

Amalga oshirilgan kodning natijasi:

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

2-misol

Bundan tashqari, har xil turdagi ketma-ketliklar orqali takrorlashingiz mumkin. Keling, sikl va zip funksiyasi orqali to‘plam va kortejni ishga tushiramiz:

st = {'a', 'b', 'c'} tlp = (1, 2, 3) for el in zip(st, tlp): print(el)

Amalga oshirilgan kodning natijasi:

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

3-misol

Agar bitta ketma-ketlikning uzunligi ikkinchisidan katta bo'lsa, ular kichikroqning elementlari bo'ylab takrorlanadi:

lst1 = ['a', 'b', 'c', 'd', 'e'] lst2 = [1, 2, 3, 4] for el in zip(lst1, lst2): print(el)

Amalga oshirilgan kodning natijasi:

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

4-misol

Zip funksiyasidan foydalanib, siz uchta ketma-ketlikni takrorlashingiz mumkin. Buning uchun funktsiya parametrida biz ularning barchasini vergul bilan ajratamiz:

lst1 = ['a1', 'b1', 'c1'] lst2 = ['a2', 'b2', 'c2'] lst3 = ['a3', 'b3', 'c3'] for el in zip(lst1, lst2, lst3): print(el)

Amalga oshirilgan kodning natijasi:

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

Ikkita ro'yxat berilgan:

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

Ularning elementlarini juftlikda kortej sifatida chop eting.

Ikkita ro'yxat berilgan:

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

Ulardan quyidagi ro'yxatni oling:

['a', '1', 'b', '2', 'c', '3']

Uchta ro'yxat berilgan:

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

Ushbu ro'yxatlarning tegishli elementlarini qo'shing va natijani yangi ro'yxatga yozing. Yig'ish quyidagi printsip bo'yicha amalga oshiriladi:

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

 

uz ru