10. ฟังก์ชั่น zip () ในภาษาไพธอน
ครั้งนี้มาทำความรู้จักกับ ฟังก์ชั่น zip() ในภาษา Python กันสักเล็กน้อย ซึ่งฟังก์ชั่นนี้ มิได้ทำหน้าที่บีบอัดข้อมูล ตามความหมายที่คุ้นเคยกันมา แต่ ฟังก์ชั่น zip ในที่นี้ เป็นการทำงานคล้ายการรูดซิป ซึ่งคุ้นเคยกันในชีวิตประจำวัน เมื่อรูดปิดซิปเข้าด้วยกัน ซี่ฟันของซิป ทั้งสองด้าน จะถูกอัดเข้าด้วยกันเป็นคู่ ๆ ไป แต่หากซิบข้างใดข้างหนึ่ง สั้นกว่าอีกข้างหนึ่ง การรูดซิปในครั้งนั้น ก็จะถูกอัดเข้าหากันได้ตามจำนวนซี่ฟัน ฝั่งที่สั้นกว่าเสมอ
ผลที่ได้รับจากการทำงานของ ฟังก์ชั่น zip () ก็เช่นกัน จะเป็นการวนซ้ำแบบขนานอย่างมีประสิทธิภาพบนชุดข้อมูลหลายตัว เช่น มีข้อมูลประเภท List จำนวน 2 ชุด คือ L1 และ L2 เมื่อใช้ฟังก์ชั่น zip () เพื่อทำการจับคู่ List ทั้งสอง เข้าด้วยกัน ผลลัพธ์ที่ได้ จะเป็น List ที่ประกอบด้วย tuple ย่อย ตามเงื่อนไขต่อไปนี้
1. L1 มีจำนวนสมาชิก L1 ไม่เท่ากับ L2 ผลลัพธ์ที่ได้ จะเป็น List ที่มีจำนวนสมาชิกเท่ากับจำนวนของสมาชิกที่มีใน List ที่สั้นกว่า ตามตัวอย่างที่ 1
2. L2 มีจำนวนสมาชิก L1 เท่ากันกับ L2 ผลลัพธ์ที่ได้ จะเป็น List ที่มีจำนวนสมาชิกเท่ากับจำนวนของสมาชิกที่มีใน List ทั้งสอง ตามตัวอย่างที่ 2
3. หากมี L1 เพียงชุดเดียว โดยไม่มี L2 ผลลัพธ์ที่ได้ จะเป็น List ที่มีจำนวนสมาชิกเท่ากับจำนวนของสมาชิกที่มีใน L1 ตามตัวอย่างที่ 3
4. เมื่อเราเรียกฟังก์ชั่น zip () กับ List ที่ว่างเปล่า ไม่มีข้อมูลใด ๆ ผลที่ได้ จะเป็นรายการที่ว่างเปล่า ตามตัวอย่างที่ 4
รูปแบบคำสั่ง: zip(list1,list2,...)
ลองมาดูตัวอย่างที่เห็นชัดขึ้น และง่ายขึ้น โค้ดด้านล่าง แสดงวิธีในการใช้ ฟังก์ชั่น zip() เพื่อจับคู่ข้อมูล 3 ชุดเข้าด้วยกัน และทำการคำนวณ จากรายการชื่ออาหาร ราคา และปริมาณที่ซื้อ เพื่อแสดง จํานวนเงินทั้งหมดที่ใช้ไปในแต่ละรายการ
หวังว่าคงจะเป็นประโยชน์ในการนำไปประยุกต์ใช้กับงานต่าง ๆได้บ้าง เช่น นำไปอ่านข้อมูลจากไฟล์ csv ซึ่งเป็นฐานข้อมูล แล้วนำขึ้นมาประมวลผล แทนการกำหนด List ดังในตัวอย่างที่ 5