
เขียนโปรแกรมภาษา Python ตอนที่ 88 การเข้าถึงข้อมูลใน Tuple
การเข้าถึงข้อมูลหรือสมาชิกใน Tuple สามารถทำได้โดยการอ้างอิงหมายเลขอินเด็กซ์ โดยระบุไว้ภายในเครื่องหมายวงเล็บสี่เหลี่ยม square brackets (อินเด็กซ์เริ่มที่ 0) โดยมีรูปบแบบดังนี้
tuple[index]
tuple
คือตัวแปรข้อมูลขนิดทูเพิลindex
คือหมายเลขอินเด็กซ์อ้างอิงตำแหน่งข้อมูลที่ต้องการเข้าถึง (เริ่มต้นที่ 0)
ตัวอย่าง
myTuple = ("Asus", "Lenovo", "Acer", "Dell") print(myTuple[3])
- บรรทัดที่ 2 ให้แสดงข้อมูลของ Tuple โดยอ้างอิงข้อมูลลำดับที่ 4 (อินเด็กซ์เท่ากับ 3)
ผลลัพธ์
Dell
ระบุอินเด็กซ์ติดลบ
เราสามารถอ้างอิงถึงข้อมูลใน Tuple โดยการระบุอินเด็กซ์เป็นตัวเลขติดลบได้ ซึ่งจะเป็นการเข้าถึงข้อมูลโดยเริ่มจากลำดับสุดท้าย เช่น ถ้าระบุอินเด็กซ์เป็น -1 ก็จะเป็นการอ้างถึงข้อมูลลำดับที่ 1 เรียงจากลำดับสุดท้าย ก็คือข้อมูลลำดับสุดท้ายนั่นเอง
myTuple = ("Asus", "Lenovo", "Acer", "Dell") print(myTuple[-2])
- บรรทัดที่ 2 แสดงข้อมูลลำดับที่ -2 หมายถึงข้อมูลลำดับที่ 2 นับจากลำดับสุดท้าย
ผลลัพธ์
Acer
การเข้าถึงข้อมูลเป็นช่วง
เราสามารถเข้าถึงข้อมูลใน Tuple โดยการระบุช่วงข้อมูลได้ คือระบุว่าต้องการข้อมูลลำดับที่เท่าไหร่ถึงลำดับที่เท่าไหร่ โดยค่าที่ได้กลับมาจะเป็น Tuple ใหม่ ที่ประกอบด้วยช่วงข้อมูลตามที่เราระบุ โดยมีรูปแบบดังนี้
tuple[start:end]
start
คืออินเด็กซ์เริ่มต้นend
คืออินเด็กซ์สุดท้าย (ลบ 1)
myTuple = ("Asus", "Lenovo", "Acer", "Dell", "HP", "Apple", "Microsoft", "MSI") print(myTuple[3:7])
- บรรทัดที่ 2 เข้าถึงข้อมูลเริ่มจากอินเด็กซ์ 3 (ลำดับที่ 4) ถึงอินเด็กซ์ 7 (หมายถึงอินเด็กซ์ 7 ลบ 1 คืออินเด็กซ์ 6 ซึ่งก็คือข้อมูลลำดับที่ 7 นั่นเอง)
ผลลัพธ์ จะได้เป็นทูเพิลใหม่ที่ประกอบด้วยข้อมูลตามที่ระบุ
(‘Dell’, ‘HP’, ‘Apple’, ‘Microsoft’)
ข้อสังเกตคือ ลำดับอ้างอิงสุดท้าย (End Index) จะไม่ถูกรวมเข้าด้วย จะได้ข้อมูลถึงอินเด็กซ์นั้น ๆ ลบด้วย 1 เสมอ
ถ้าไม่ระบุอินเด็กซ์เริ่มต้น จะเป็นการเข้าถึงข้อมูลตั้งแต่ลำดับแรกไปจนถึงลำดับที่ระบุ
myTuple = ("Asus", "Lenovo", "Acer", "Dell", "HP", "Apple", "Microsoft", "MSI") print(myTuple[:7])
(‘Asus’, ‘Lenovo’, ‘Acer’, ‘Dell’, ‘HP’, ‘Apple’, ‘Microsoft’)
และถ้าไม่ระบุอินเด็กซ์สุดท้าย ก็จะเป็นการเข้าถึงข้อมูลตั้งแต่ลำดับที่ระบุจนเป็นถึงข้อมูลลำดับสุดท้าย
myTuple = ("Asus", "Lenovo", "Acer", "Dell", "HP", "Apple", "Microsoft", "MSI") print(myTuple[3:])
(‘Dell’, ‘HP’, ‘Apple’, ‘Microsoft’, ‘MSI’)
การเข้าถึงข้อมูลแบบช่วง สามารถระบุอินเด็กซ์ติดลบได้เช่นกัน ดังตัวอย่าง
myTuple = ("Asus", "Lenovo", "Acer", "Dell", "HP", "Apple", "Microsoft", "MSI") print(myTuple[-5:-1])
- บรรทัดที่ 2 เข้าถึงข้อมูลเริ่มจากอินเด็กซ์ -5 (หมายถึงข้อมูลลำดับที่ 5 นับจากลำดับสุดท้าย) ไปจนถึงข้อมูลอินเด็กซ์ -1 [ไม่รวม] (หมายถึงข้อมูลอินเด็กซ์ -1 ลบ 1 ซึ่งก็ได้แก่ อินเด็กซ์ -2 คือข้อมูลลำดับที่ 2 นับจากลำดับสุดท้าย นั่นเอง)
ลองดูผลลัพธ์แล้วเทียบเคียงกับโค้ดดูนะครับ
(‘Dell’, ‘HP’, ‘Apple’, ‘Microsoft’)
ตรวจสอบว่ามีข้อมูลที่ระบุอยู่ใน Tuple หรือไม่
ถ้าต้องการตรวจสอบว่ามีข้อมูลที่ต้องการอยู่ใน Tuple หรือไม่ สามารถทำได้โดยใช้คีย์เวิร์ด in
myTuple = ("Asus", "Lenovo", "Acer", "Dell", "HP", "Apple", "Microsoft", "MSI") if "Dell" in myTuple: print("Yes, 'Dell' is in tuple.") else: print("No, 'Dell' is not in tuple.")
ผลลัพธ์
Yes, ‘Dell’ is in tuple.