
เขียนโปรแกรมภาษา Python ตอนที่ 90 การแยกข้อมูลใน Tuple
ในขณะที่เราสร้างตัวแปรประเภท Tuple ขึ้นมาและกำหนดข้อมูลให้กับตัวแปรดังกล่าว เรียก Packing เหมือนแพ็กสินค้ายังไงยังงั้น แต่ในกรณีของ Tuple เป็นการแพ็กข้อมูล
myTuple = ("Asus", "Lenovo", "Acer")
จากโค้ดด้านบนนั้นเป็นการประกาศตัวแปรข้อมูลแบบ Tuple พร้อมทั้งกำหนดข้อมูลให้มัน นี่แหละที่เรียกว่า Packing a tuple
ใน Python เราสามารถแยกข้อมูลแต่ละตัวออกมาเก็บลงในตัวแปรได้ วิธีนี้เรียกว่า “unpacking” ดังตัวอย่าง
myTuple = ("Asus", "Lenovo", "Acer") (notebook1, notebook2,notebook3) = myTuple print(notebook1) print(notebook2) print(notebook3)
- บรรทัดที่ 2 สร้างตัวแปรขึ้นมา จำนวนเท่ากับค่าใน Tuple และกำหนดค่าใน Tuple ให้กับตัวแปรที่สร้างขึ้น
ผลลัพธ์ ตัวแปรแต่ละตัวจะมีค่าเท่ากับค่าใน Tuple เรียงตามลำดับ
Asus
Lenovo
Acer
จำนวนของตัวแปรต้องเท่ากันกับจำนวนของค่าใน Tuple ถ้าจำนวนของตัวแปรน้อยกว่าค่าใน Tuple ต้องกำหนดเครื่องหมาย *
ไว้หน้าตัวแปรตัวสุดท้ายเพื่อรวมค่าที่เหลือทั้งหมดใน Tuple เป็นข้อมูลแบบ List ดังตัวอย่าง
myTuple = ("Asus", "Lenovo", "Acer", "Dell", "Intel", "Microsoft") (notebook1, notebook2, *notebook3) = myTuple print(notebook1) print(notebook2) print(notebook3)
- บรรทัดที่ 1 ตัวแปร myTuple เก็บข้อมูลแบบ Tuple มีข้อมูลทั้งหมด 6 ค่า
- บรรทัดที่ 2 สร้างตัวแปรขึ้นมา 3 ตัว เก็บข้อมูลจาก Tuple ที่สร้างไว้ (เนื่องจากตัวแปรที่สร้างขึ้นมีเพียง 3 ตัว ซึ่งน้อยกว่จำนวนค่าใน Tuple จึงกำหนดเครื่องหมาย
*
หน้าตัวแปรตัวสุดท้าย เพื่อให้นำค่าที่เหลือทั้งหมดใน Tuple มาเก็บไว้ที่ตัวแปรนี้ในรูปแบบ List)
ผลลัพธ์ ค่าใน Tuple จะถูกกำหนดให้กับตัวแปรตามลำดับ และข้อมูลที่เหลือจะถูกนำมาเก็บไว้ในตัวแปรตัวสุดท้ายในรูปแบบลิสต์
Asus
Lenovo
[‘Acer’, ‘Dell’, ‘Intel’, ‘Microsoft’]
ในกรณีที่เรากำหนดเครื่องหมาย *
ไว้หน้าตัวแปรอื่นแทนที่จะเป็นตัวแปรสุดท้าย Python จะนำค่าใน Tuple มากำหนดให้กับตัวแปรดังกล่าวจนเหลือจำนวนค่าใน Tuple เท่ากับจำนวนที่เหลือ
myTuple = ("Asus", "Lenovo", "Acer", "Dell", "Intel", "Microsoft") (notebook1, *notebook2, notebook3) = myTuple print(notebook1) print(notebook2) print(notebook3)
- บรรทัดที่ 2 สร้างตัวแปรมารับค่าจาก Tuple จำนวน 3 ตัวแปร และกำหนดเครื่องหมาย
*
ไว้หน้าตัวแปรที่ 2 (ค่าใน Tuple มีจำนวน 6 ค่า ซึ่งมากกว่าจำนวนตัวแปร)
ผลลัพธ์ Python จะนำค่าที่ 1 จาก Tuple มากำหนดให้กับตัวแปรที่ 1 และนำค่าที่เหลือ (เหลือไว้เท่ากับจำนวนตัวแปรที่เหลือ) มากำหนดให้ตัวแปรที่ 2 ซึ่งกำหนดเครื่องหมาย *
กำกับไว้ และนำค่าสุดท้ายมากำหนดให้กับตัวแปรที่ 3
Asus
[‘Lenovo’, ‘Acer’, ‘Dell’, ‘Intel’]
Microsoft