การวนลูปหลายลำดับพร้อมกันใน Python
เพื่อวนลูปผ่านหลายลำดับพร้อมกัน คุณสามารถใช้ฟังก์ชัน
zip เมื่อทำเช่นนี้ องค์ประกอบทั้งหมดของ
ลำดับจะแสดงออกมาในรูปของทูเพิล ซึ่งประกอบด้วยองค์ประกอบที่มี
ดัชนีเดียวกัน
ตัวอย่าง
สมมติว่าเรามีสองรายการ:
lst1 = ['a', 'b', 'c']
lst2 = [1, 2, 3]
ลองแสดงองค์ประกอบของพวกมันเป็นคู่ ๆ:
for el in zip(lst1, lst2):
print(el)
ผลลัพธ์ของโค้ดที่ทำงาน:
('a', 1)
('b', 2)
('c', 3)
ตัวอย่าง
คุณสามารถวนลูปผ่านลำดับที่มีประเภทต่างกันได้ ลองส่งเซ็ตและทูเพิล
ผ่านลูปและฟังก์ชัน zip:
st = {'a', 'b', 'c'}
tlp = (1, 2, 3)
for el in zip(st, tlp):
print(el)
ผลลัพธ์ของโค้ดที่ทำงาน:
('a', 1)
('b', 2)
('c', 3)
ตัวอย่าง
หากความยาวของลำดับหนึ่งมากกว่าอีกลำดับหนึ่ง การวนซ้ำจะดำเนินการ ตามองค์ประกอบของลำดับที่สั้นกว่า:
lst1 = ['a', 'b', 'c', 'd', 'e']
lst2 = [1, 2, 3, 4]
for el in zip(lst1, lst2):
print(el)
ผลลัพธ์ของโค้ดที่ทำงาน:
('a', 1)
('b', 2)
('c', 3)
('d', 4)
ตัวอย่าง
คุณสามารถวนลูปผ่านสามลำดับโดยใช้ฟังก์ชัน zip สำหรับสิ่งนี้
เราระบุลำดับทั้งหมดในพารามิเตอร์ของฟังก์ชันโดยคั่นด้วย
เครื่องหมายจุลภาค:
lst1 = ['a1', 'b1', 'c1']
lst2 = ['a2', 'b2', 'c2']
lst3 = ['a3', 'b3', 'c3']
for el in zip(lst1, lst2, lst3):
print(el)
ผลลัพธ์ของโค้ดที่ทำงาน:
('a1', 'a2', 'a3')
('b1', 'b2', 'b3')
('c1', 'c2', 'c3')
โจทย์ฝึกปฏิบัติ
กำหนดสองรายการ:
tst1 = [1, 3, 5]
tst2 = [2, 4, 6]
แสดงองค์ประกอบของพวกมันเป็นคู่ในรูปของทูเพิล
กำหนดสองรายการ:
tst1 = ['a', 'b', 'c']
tst2 = ['d', 'e', 'f']
ได้รับรายการต่อไปนี้จากพวกเขา:
['a', '1', 'b', '2', 'c', '3']
กำหนดสามรายการ:
tst1 = [11, 12, 13, 14]
tst2 = [21, 22, 23, 24]
tst3 = [31, 32, 33, 34]
เพิ่มองค์ประกอบที่สอดคล้องกันของรายการเหล่านี้ และบันทึกผลลัพธ์ลงในรายการใหม่ การรวมจะดำเนินการตามหลักการต่อไปนี้:
[
11 + 21 + 31,
12 + 22 + 32,
13 + 23 + 33,
14 + 24 + 34,
]