ดีครับดอทคอม

เขียนโปรแกรมภาษา Python ตอนที่ 88 การเข้าถึงข้อมูลใน Tuple

การเข้าถึงข้อมูลใน Tuple

เขียนโปรแกรมภาษา 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.