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