Python – Tuple

og:image

Python – Tuple

การเก็บข้อมูลแบบ tuple นั้นคล้ายกันกับลิสต์ ความแตกต่างกันตรง tuple นั้นเมื่อทำการกำหนดค่าลงไปให้กับตัวแปรแล้วจะไม่สามารถเปลี่ยนแปลงได้อีก แต่ลิสต์สามารถเปลี่ยนแปลงได้

    ข้อได้เปรียบของ tuple เมื่อเทียบกับลิสต์

  • เนื่องจาก tuple เป็นการเก็บข้อมูลแบบไม่สามารถแก้ไขข้อมูลได้(immutable) การเข้าถึงข้อมูลนั้นจะเร็วกว่าการเข้าถึงข้อมูลในลิสต์ ทำให้ได้เปรียบในเรื่องประสิทธิภาพ
  • เนื่องจาก tuple บรรจุข้อมุลที่ไม่สามารถแก้ไขได้ จึงสามารถใช้ tuple เป็นคีย์(key) สำหรับการเก็บข้อมูลแบบ dictionary แต่ในสำหรับลิสต์นั้นไม่สามารถใช้งานแบบนี้ได้
  • ถ้าต้องการเก็บข้อมูลที่ไม่ต้องการให้ข้อมูลเปลี่ยนแปลง การใช้งาน tuple จะช่วยป้องกันการแก้ไขข้อมูลได้
  1. การสร้างข้อมูลชนิด tuple
    • การสร้างข้อมูล tuple ในกรณีที่มีข้อมูลมากกว่า 1 ตัว
      การสร้างข้อมูลชนิด tuple ทำได้โดย นำข้อมูลทั้งหมดมาคั่นด้วยเครื่องหมาย “,” แล้วครอบไว้ด้วยเครื่องหมาย “()” เพื่อระบุขอบเขต โดยเครื่องหมาย “()” สามารถจะใส่หรือไม่ใส่ก็ได้จะสามารถสร้างข้อมูลได้เหมือนกัน

      สำหรับการระบุข้อมูลใน tuple นั้น จะสามารถจะบรรจุข้อมูลได้ไม่จำกัดจำนวน และสามารถจะบรรจุข้อมูลต่างชนิดกันได้(จำนวนเต็ม, จำนวนทศนิยม, ลิสต์, string และอื่นๆ) และยังสามารถเป็นข้อมูลชนิด tuple เองได้อีกด้วย
      ตัวอย่างการใช้งาน

      # กำหนดตัวแปรชนิด tuple เพื่อเก็บข้อมูลของเวลาที่ใช้ในการประมวลผลข้อมูลในแต่ละรอบ
      elapsed_time = ()
      print( elapsed_time )
      # โปรแกรมทำการปรินต์ค่า
      # ()
      
      # กำหนดตัวแปรชนิด tuple เพื่อเก็บข้อมูลของเวลาที่ใช้ในการประมวลผลข้อมูลในแต่ละรอบ  
      # โดยข้อมูลจะเป็นข้อมูลในหน่วยวินาที(s) และมีชนิดข้อมูลเป็นจำนวนเต็มบวก
      elapsed_time = (60, 55, 52)
      print( elapsed_time )
      # โปรแกรมทำการปรินต์ค่า
      # (60, 55, 52)
      
      # กำหนดตัวแปรชนิด tuple เพื่อเก็บข้อมูลของเวลาที่ใช้ในการประมวลผลข้อมูลในแต่ละรอบ  
      # โดยข้อมูลจะเป็นข้อมูลในหน่วยวินาที(s) และมีชนิดข้อมูลเป็นจำนวนเต็มบวกและเลขทศนิยม
      elapsed_time = (60, 55, 45.5, 52)
      print( elapsed_time )
      # โปรแกรมทำการปรินต์ค่า
      # (60, 55, 45.5, 52)
      
      # กำหนดตัวแปรชนิด tuple เพื่อเก็บข้อมูลของเวลาที่ใช้ในการประมวลผลข้อมูลในแต่ละรอบ  
      # โดยข้อมูลหลักจะเป็นข้อมูลในหน่วยวินาที(s) และหากข้อมูลถูกเก็บในหน่วยอื่นจำเป็นต้อง
      # ระบุหน่วยของข้อมูลดังกล่าวกำกับไว้ด้วย ซึ่งจะมีการเก็บข้อมูลเป็นจำนวนเต็มบวก, 
      # เลขทศนิยมและข้อความ
      elapsed_time = (60, 
      		55, 
      		'1 minute', 
      		45.5, 
      		'2 minutes', 
      		52  )
      print( elapsed_time )
      # โปรแกรมทำการปรินต์ค่า
      # (60, 55, '1 minute', 45.5, '2 minutes', 52)
      
      # กำหนดตัวแปรชนิด tuple เพื่อเก็บข้อมูลของเวลาที่ใช้ในการประมวลผลข้อมูลในแต่ละรอบ  
      # โดยข้อมูลหลักจะเป็นข้อมูลในหน่วยวินาที(s) และหากข้อมูลถูกเก็บในหน่วยอื่นจำเป็นต้อง
      # ระบุหน่วยของข้อมูลดังกล่าวกำกับไว้ด้วย ซึ่งจะมีการเก็บข้อมูลเป็นจำนวนเต็มบวก, 
      # เลขทศนิยมและข้อความ, ลิสต์ หรือ tuple
      elapsed_time = ( 60, 
      		55, 
      		'1 minute', 
      		(10, 15.5, 12, 9), 
      		45.5, 
      		'2 minutes', 
      		52, 
      		[15, 12, 10, 9]  )
      print( elapsed_time )
      # โปรแกรมทำการปรินต์ค่า
      # (60, 55, '1 minute', (10, 15.5, 12, 9), 45.5, '2 minutes', 52, [15, 12, 10, 9])
      
      

      จากตัวอย่าง เป็นการสร้างข้อมูลชนิด tuple ในรูปแบบต่างๆ โดยภายใน tuple จะประกอบด้วยข้อมูลต่างชนิดกันได้และสามารถที่จะบรรจุข้อมูลประเภทลิสต์หรือ tuple อยู่ภายในได้ด้วย และในการกำหนดข้อมูลชนิด tuple เราสามารถละเครื่องหมาย () ได้ซึ่งจะมีผลแบบเดียวกัน แต่การใส่เครื่องหมายดังกล่าวจะช่วยให้ตัวโปรแกรมอ่านง่ายขึ้นเมื่อมาอ่านโค้ดที่เขียนไว้ในภายหลัง

    • การสร้างข้อมูล tuple ในกรณีที่มีข้อมูลเพียง 1 ข้อมูล
      หากเราต้องการสร้างข้อมูลชนิด tuple โดยมีข้อมูลที่ต้องการระบุเพียงตัวเดียว เราจำเป็นต้องมีเครื่องหมาย “,” ตามหลังข้อมูลจำนวนนั้น เพื่อที่จะบอกโปรแกรมว่า เราต้องการสร้างให้ข้อมูลนี้ให้เป็นชนิด tuple
      ตัวอย่างการใช้งาน

      # กำหนดตัวแปรเพื่อเก็บข้อมูลชื่อหน่วยสำหรับมวลของวัตถุ โดยกำหนดชนิดข้อมูลเป็น tuple 
      # ซึ่งมีข้อมูลเพียงข้อมูลเดียวและไม่ได้ระบุเครื่องหมาย "," ต่อหลังข้อมูล
      mass_units = ("kg:kilogram")
      print(type(mass_units))
      print(mass_units)
      # โปรแกรมทำการปรินต์ค่า
      # <class 'str'>
      # kg:kilogram
      
      # กำหนดตัวแปรเพื่อเก็บข้อมูลชื่อหน่วยสำหรับมวลของวัตถุ โดยกำหนดชนิดข้อมูลเป็น tuple 
      # ซึ่งมีข้อมูลเพียงข้อมูลเดียวและระบุเครื่องหมาย "," ต่อหลังข้อมูล พร้อมทั้งครอบข้อมูลดังกล่าว
      # ด้วยเครื่องหมาย ( )
      mass_units = ('kg:kilogram', )
      print(type(mass_units))
      print(mass_units)
      # โปรแกรมทำการปรินต์ค่า
      # <class 'tuple'>
      # ('kg:kilogram',)
      
      
      # กำหนดตัวแปรเพื่อเก็บข้อมูลชื่อหน่วยสำหรับมวลของวัตถุ โดยกำหนดชนิดข้อมูลเป็น tuple 
      # ซึ่งมีข้อมูลเพียงข้อมูลเดียวและระบุเครื่องหมาย "," ต่อหลังข้อมูล แต่ไม่ได้ทำการครอบ
      # ข้อมูลดังกล่าวด้วยเครื่องหมาย ( )
      mass_units = 'kg:kilogram', 
      print(type(mass_units))
      print(mass_units)
      # โปรแกรมทำการปรินต์ค่า
      # <class 'tuple'>
      # ('kg:kilogram',)
      
      
    • การใช้เครื่องหมาย “()” ระบุของเขตข้อมูลของ tuple
      ในการสร้างชุดข้อมูลชนิด tuple เราสามารถใช้เครื่องหมาย “()” สำหรับกำหนดของเขตข้อมูล หรืออาจจะละเครื่องหมายดังกล่าวก็ได้ ซึ่งการกำกับด้วยเครื่องหมาย “()” จะมีข้อดีคือ ช่วยทำให้โปรแกรมอ่านง่ายขึ้นเมื่อต้องกลับมาอ่านโค้ดในภายหลัง
      ตัวอย่างการใช้งาน

      # การกำหนดข้อมูลพิกัดในแกน x, y ซึ่งเป็นข้อมูลชนิด tuple และครอบด้วยเครื่องหมาย "()" 
      # เพื่อกำหนดขอบเขตของข้อมูล
      position = (10, 15)
      x, y = position
      print("x: {}".format(x) )
      print("y: {}".format(y) )
      # โปรแกรมทำการปรินต์ค่า
      # x: 10
      # y: 15
      
      # การกำหนดข้อมูลพิกัดในแกน x, y ซึ่งเป็นข้อมูลชนิด tuple แต่ไม่ทำการกำกับด้วยเครื่องหมาย "()" 
      # เพื่อกำหนดขอบเขตของข้อมูล
      position = 10, 15
      x, y = position
      print("x: {}".format(x) )
      print("y: {}".format(y) )
      # โปรแกรมทำการปรินต์ค่า
      # x: 10
      # y: 15
      
  2. การเข้าถึงข้อมูลใน tuple

    เราสามารถจะเข้าถึงข้อมูลแต่ละตัวใน tuple ได้หลายวิธี ดังนี้

    • การอ้างอิงลำดับของข้อมูล(index)
      เราสามารถใช้การอ้างอิงลำดับของข้อมูล(index) ในการเข้าถึงข้อมูลโดยใช้ตัวดำเนินการ [] เพื่อระบุตำแหน่งข้อมูลที่ต้องการเข้าถึง โดยจะเริ่มจากลำดับที่ 0 โดยหาก tuple ประกอบด้วยข้อมูล 3 ตัว ลำดับการเข้าถึงข้อมูลจะเป็น 0, 1, 2 หากเราเข้าถึงข้อมูลที่อยู่นอกเหนือจากลำดับที่มีอยู่จริงโปรแกรมจะเกิดปัญหา IndexError

      โดยลำดับของข้อมูล(index)จะต้องเป็นจำนวนเต็ม เราไม่สามารถใช้ ตัวเลขทศนิยม หรือ ข้อมูลชนิดอื่นมาอ้างถึงข้อมูลได้ หากเราทำการดำเนินการจะเกิดปัญหา TypeError และ หากเราต้องการจะเข้าถึงข้อมูลที่เป็น nested เราก็ใช้การอ้างอิงลำดับของข้อมูลได้เช่นกัน
      ตัวอย่างการใช้งาน

      # กำหนดตัวแปรชนิด tuple เพื่อเก็บข้อมูลของเวลาที่ใช้ในการประมวลผลข้อมูลในแต่ละรอบ  
      # โดยข้อมูลหลักจะเป็นข้อมูลในหน่วยวินาที(s) และหากข้อมูลถูกเก็บในหน่วยอื่นจำเป็นต้อง
      # ระบุหน่วยของข้อมูลดังกล่าวกำกับไว้ด้วย ซึ่งจะมีการเก็บข้อมูลเป็นจำนวนเต็มบวก, 
      # เลขทศนิยมและข้อความ
      elapsed_time = (60, 
      		55, 
      		'1 minute', 
      		45.5, 
      		'2 minutes', 
      		52  )
      
      # เข้าถึงข้อมูลในลำดับที่ระบุ
      print( elapsed_time[1])
      # โปรแกรมทำการปรินต์ค่า
      # 55
      
      # เข้าถึงข้อมูลในลำดับที่ระบุ
      print( elapsed_time[3] )
      # โปรแกรมทำการปรินต์ค่า
      # 45.5
      
      # เข้าถึงข้อมูลลำดับที่ไม่มีอยู่จริง
      print( elapsed_time[6])
      # โปรแกรมทำการปรินต์ค่า
      # IndexError: tuple index out of range
      
      
    • การระบุลำดับของข้อมูล(index) ที่เป็นจำนวนลบ
      การเข้าถึงข้อมูลโดยการระบุตำแหน่งของข้อมูล(index) ที่เป็นเลขจำนวนลบนั้น อ้างอิงโดยเริ่มต้นจากลำดับที่ -1 ซึ่งใช้อ้างถึงข้อมูลตัวสุดท้าย และลำดับที่ -2 จะอ้างถึงข้อมูลตัวก่อนสุดท้ายไปเรื่อยๆ ตามลำดับ
      ตัวอย่างการใช้งาน

      # กำหนดตัวแปรชนิด tuple เพื่อเก็บข้อมูลของเวลาที่ใช้ในการประมวลผลข้อมูลในแต่ละรอบ  
      # โดยข้อมูลหลักจะเป็นข้อมูลในหน่วยวินาที(s) และหากข้อมูลถูกเก็บในหน่วยอื่นจำเป็นต้อง
      # ระบุหน่วยของข้อมูลดังกล่าวกำกับไว้ด้วย ซึ่งจะมีการเก็บข้อมูลเป็นจำนวนเต็มบวก, 
      # เลขทศนิยมและข้อความ
      elapsed_time = (60, 
      		55, 
      		'1 minute', 
      		45.5, 
      		'2 minutes', 
      		52  )
      print( elapsed_time[-1] )
      # โปรแกรมทำการปรินต์ค่า
      # 52
      
      # เข้าถึงข้อมูลลิสต์ที่อยู่ภายใน tuple โดยระบุลำดับของข้อมูลจากจำนวนลบ
      print( elapsed_time[-3] )
      # โปรแกรมทำการปรินต์ค่า
      # 45.5
      
    • การเข้าถึงข้อมูลโดยระบุช่วงของข้อมูล
      การเข้าถึงข้อมูลโดยใช้ช่วงของข้อมูลนั้นใช้เครื่องหมาย “:” แล้วจึงระบุจุดเริ่มต้นและจุดสิ้นสุดของข้อมูลไว้ด้านซ้ายและด้านขวาของเครื่องหมายตามลำดับ
      ตัวอย่างการใช้งาน

      # กำหนดตัวแปรชนิด tuple เพื่อเก็บข้อมูลของเวลาที่ใช้ในการประมวลผลข้อมูลในแต่ละรอบ  
      # โดยข้อมูลหลักจะเป็นข้อมูลในหน่วยวินาที(s) และหากข้อมูลถูกเก็บในหน่วยอื่นจำเป็นต้อง
      # ระบุหน่วยของข้อมูลดังกล่าวกำกับไว้ด้วย ซึ่งจะมีการเก็บข้อมูลเป็นจำนวนเต็มบวก, 
      # เลขทศนิยมและข้อความ
      elapsed_time = (60, 
      		55, 
      		'1 minute', 
      		45.5, 
      		'2 minutes', 
      		52  )
      
      # การเข้าถึงข้อมูลใน tuple โดยทำการระบุช่วงของข้อมูล จุดเริ่มต้นจุดสิ้นสุด 
      # ซึ่งการระบุจุดเริ่มต้นแบบนี้ จะเข้าถึงตั้งแต่ข้อมูลจากลำดับที่ระบุไปจนถึง
      # ก่อนลำดับสิ้นสุดที่ระบุ
      print( elapsed_time[2:4] )
      # โปรแกรมทำการปรินต์ค่า
      # ('1 minute', 45.5)
      
      # การเข้าถึงข้อมูลใน tuple โดยทำการระบุช่วงของข้อมูล ซึ่งระบุเพียงจุดสิ้นสุด 
      # การระบุแบบนี้ จะเข้าถึงตั้งแต่ข้อมูลตัวแรกไปจนถึงลำดับก่อนจุดสิ้นสุดที่ระบุ
      print( elapsed_time[:3] )
      # โปรแกรมทำการปรินต์ค่า
      # (60, 55, '1 minute')
      
      # การเข้าถึงข้อมูลใน tuple โดยทำการระบุช่วงของข้อมูล ซึ่งระบุเพียงจุดเริ่มต้น 
      # การระบุแบบนี้ จะเข้าถึงตั้งแต่ลำดับเริ่มต้นที่ระบุไปจนถึงตัวสุดท้าย
      print( elapsed_time[3:] )
      # โปรแกรมทำการปรินต์ค่า
      # (45.5, '2 minutes', 52)
      
      # การเข้าถึงข้อมูลใน tuple โดยทำการระบุช่วงของข้อมูลแบบไม่ระบุจุดเริ่มต้นและจุดสิ้นสุด
      # การระบุแบบนี้ จะเข้าถึงข้อมูลทั้งหมด
      print( elapsed_time[:] )
      # โปรแกรมทำการปรินต์ค่า
      # (60, 55, '1 minute', 45.5, '2 minutes', 52)
      
      
  3. การเปลี่ยนแปลงข้อมูลใน tuple

    การเปลี่ยนแปลงข้อมูลใน tuple นั้น จะต่างจากการเปลี่ยนแปลงข้อมูลในลิสต์ โดยที่ข้อมูลที่ถูกเก็บในลิสต์ทุกลำดับข้อมูลจะสามารถแก้ไขข้อมูลได้ แต่ใน tuple จะไม่สามารถทำได้หลังจากได้กำหนดค่าเริ่มต้นลงไปแล้ว(immutable) แต่ก็จะมีบางกรณีที่สามารถทำการแก้ไขข้อมูลดังนี้

    • เปลี่ยนแปลงข้อมูลของ tuple เฉพาะข้อมูลซึ่งเป็นชนิดที่ทำการแก้ไขได้(mutable)
      ในกรณีที่ข้อมูลที่บรรจุอยู่ภายใน tuple นั้นเป็นข้อมูลประเภทที่แก้ไขได้(mutable) อย่างเช่นข้อมูลประเภทลิสต์ ในกรณีเช่นนี้ เฉพาะข้อมูลดังกล่าวเท่านั้นที่จะสามารถทำการเปลี่ยนแปลงได้
      ตัวอย่างการใช้งาน

      # กำหนดตัวแปรชนิด tuple เพื่อเก็บข้อมูลของเวลาที่ใช้ในการประมวลผลข้อมูลในแต่ละรอบ  
      # โดยข้อมูลหลักจะเป็นข้อมูลในหน่วยวินาที(s) และหากข้อมูลถูกเก็บในหน่วยอื่นจำเป็นต้อง
      # ระบุหน่วยของข้อมูลดังกล่าวกำกับไว้ด้วย ซึ่งจะมีการเก็บข้อมูลเป็นจำนวนเต็มบวก, 
      # เลขทศนิยมและข้อความ, ลิสต์ หรือ tuple
      elapsed_time = ( 60, 
      		55, 
      		'1 minute', 
      		(10, 15.5, 12, 9), 
      		45.5, 
      		'2 minutes', 
      		52, 
      		[15, 12, 10, 9]  )
      
      # เปลี่ยนแปลงข้อมูลใน tuple ซึ่งข้อมูลดังกล่าวเป็นข้อมูลประเภทลิสต์ โดยระบุลำดับของข้อมูลใน tuple ก่อนแล้วตามด้วยลำดับของข้อมูลในลิสต์
      # ของ tuple และลิสต์
      elapsed_time[7][1] = 11
      print( elapsed_time )
      # โปรแกรมทำการปรินต์ค่า
      # (60, 55, '1 minute', (10, 15.5, 12, 9), 45.5, '2 minutes', 52, [15, 11, 10, 9])
      
      # เปลี่ยนแปลงข้อมูลใน tuple โดยระบุลำดับของข้อมูล ซึ่งข้อมูลดังกล่าวเป็นจำนวนเต็มบวก
      elapsed_time[0] = 55
      print( elapsed_time )
      # โปรแกรมทำการปรินต์ค่า
      # TypeError: 'tuple' object does not support item assignment
      
      
    • เปลี่ยนแปลงข้อมูลใน tuple ด้วยการกำหนดค่าใหม่ทั้งหมดให้ tuple นั้น
      เราไม่สามารถเปลี่ยนแปลงข้อมูลแต่ละตัวภายใน tuple ได้แต่เราก็ยังสามารถเปลี่ยนข้อมูลของตัวแปรดังกล่าว โดยกำหนดค่าใหม่ให้กับตัวแปรที่เป็น tuple ได้
      ตัวอย่างการใช้งาน

      # กำหนดตัวแปรชนิด tuple เพื่อเก็บข้อมูลของเวลาที่ใช้ในการประมวลผลข้อมูลในแต่ละรอบ  
      # โดยข้อมูลหลักจะเป็นข้อมูลในหน่วยวินาที(s) และหากข้อมูลถูกเก็บในหน่วยอื่นจำเป็นต้อง
      # ระบุหน่วยของข้อมูลดังกล่าวกำกับไว้ด้วย ซึ่งจะมีการเก็บข้อมูลเป็นจำนวนเต็มบวก, 
      # เลขทศนิยมและข้อความ, ลิสต์ หรือ tuple
      elapsed_time = ( 60, 
      		55, 
      		'1 minute', 
      		(10, 15.5, 12, 9), 
      		45.5, 
      		'2 minutes', 
      		52, 
      		[15, 12, 10, 9]  )
      
      print( elapsed_time )
      # โปรแกรมทำการปรินต์ค่า
      # (60, 55, '1 minute', (10, 15.5, 12, 9), 45.5, '2 minutes', 52, [15, 12, 10, 9])
      
      elapsed_time = (60, 55, '1 minute', 45.5, '2 minutes', 52)
      print( elapsed_time )
      # โปรแกรมทำการปรินต์ค่า
      # (60, 55, '1 minute', 45.5, '2 minutes', 52)
      
      
  4. ทำการรวมข้อมูลชนิด tuple ด้วยเครื่องหมาย “+”

    เราสามารถใช้เครื่องหมายดำเนินการ “+” ในการรวมข้อมูลจากข้อมูลชนิด tuple เข้าด้วยกัน(concatenation) แล้วสร้างเป็นข้อมูลชนิด tuple ใหม่ขึ้นมา
    ตัวอย่างการใช้งาน

    # กำหนดตัวแปรเก็บข้อมูลชนิด tuple สำหรับเก็บข้อมูลชื่อของหน่วยฐานเอสไอ
    si_base_units = ('m:meter', )
    
    # กำหนดตัวแปรเก็บข้อมูลชนิด tuple สำหรับเก็บข้อมูล ชื่อของหน่วยอนุพันธ์เอสไอ
    si_derived_units = ('m^2:square meter', 'm^3:cubic meter')
    
    # ทำการรวมข้อมูลหน่วยทั้งสองโดยใช้เครื่องหมายดำเนินการ "+"
    si_units = si_base_units + si_derived_units
    print( si_units )
    
    # โปรแกรมทำการปรินต์ค่า
    # ('m: meter', 'm^2:square meter', 'm^3:cubic meter')
    

    จากตัวอย่าง เป็นการใช้เครื่องหมายดำเนินการ “+” เพื่อทำการรวมข้อมูลตัวอย่างของชื่อหน่วยวัดของข้อมูลซึ่งถูกเก็บไว้ในตัวแปร “si_units”, “si_derived_units” โดยตัวแปรดังกล่าวจะทำการเก็บข้อมูลหน่วยฐานเอสไอ และหน่วยอนุพันธ์เอสไอ(ซึ่งเก็บไว้ในข้อมูลชนิด tuple) โดยเมื่อทำการวมข้อมูลโดยใช้เครื่องหมายดำเนินการ “+” แล้วโปรแกรมจะนำข้อมูลจากทั้งสองตัวแปรแล้วสร้างข้อมูลใหม่ชนิด tuple ขึ้นมา

  5. ทำการคัดลอกซ้ำข้อมูลชนิด tuple ด้วยเครื่องหมาย “*”

    เราสามารถใช้เครื่องหมายดำเนินการ “*” ในการคัดลอกข้อมูลเดิมตามจำนวนครั้งที่ระบุ แล้วสร้างเป็นข้อมูลชนิด tuple ใหม่ขึ้นมา
    ตัวอย่างการใช้งาน

    # กำหนดตัวแปรเก็บข้อมูลชนิด tuple สำหรับเก็บ ชื่อหน่วยของข้อมูล
    data_units = ('m:meter',)
    
    # ใช้เครื่องหมายดำเนินการ "*" เพื่อคัดลอกข้อมูล
    print( data_units*3 )
    
    # โปรแกรมทำการปรินต์ค่า
    # ('m: meter', 'm:meter', 'm:meter' )
    

    จากตัวอย่าง เป็นการใช้เครื่องหมายดำเนินการ “*” เพื่อทำการคัดลอกข้อมูล โดยเป็นการคัดลอกข้อมูลของหน่วยเมตร ซ้ำเป็นจำนวน 3 ครั้ง โดยเมื่อใช้เครื่องหมายดำเนินการเพื่อทำการคัดลอกข้อมูล โปรแกรมจะสร้างข้อมูลใหม่ชนิด tuple ขึ้นมาเพื่อเก็บข้อมูลชื่อหน่วยเมตร เป็นจำนวน 3 ข้อมูล

  6. การลบข้อมูล tuple

    เนื่องจากเราไม่สามารถทำการแก้ไขข้อมูลภายใน tuple ได้ ทำให้เราไม่สามารถจะทำการลบเฉพาะข้อมูลบางตัวออกจาก tuple อีกด้วย แต่เราสามารถลบข้อมูลตัวแปรออกได้ โดยใช้คีย์เวิร์ด “del”
    ตัวอย่างการใช้งาน

    # กำหนดตัวแปรเก็บข้อมูลชนิด tuple สำหรับเก็บข้อมูลชื่อของหน่วยฐานเอสไอทั้ง 7 หน่วย
    si_base_units = ( 'm:meter', 
    		'kg:kilogram', 
    		's:second', 
    		'A:ampere', 
    		'K:kelvin', 
    		'mol:mole', 
    		'cd:candela')
    
    # ทำการลบข้อมูลชนิด tuple โดยใช้คีย์เวิร์ด "del"
    del si_base_units
    print( si_base_units )
    # โปรแกรมทำการปรินต์ค่า
    # NameError: name 'si_base_units' is not defined
    
    

    จากตัวอย่าง เป็นการลบข้อมูลชนิด tuple โดยทำการลบตัวแปรออกด้วยคีย์เวิร์ด “del” และหากมีการเรียกใช้ตัวแปรดังกล่าวอีกหลังทำการลบข้อมูลแล้ว โปรแกรมจะเกิดข้อผิดพลาด “NameError”

  7. การดำเนินการกับข้อมูลชนิด tuple

    • การตรวจสอบว่าข้อมูลที่ระบุมีอยู่ใน tuple หรือไม่
      เราสามารถจะทำการตรวจสอบว่า ข้อมูลที่ระบุนั้นอยู่ใน tuple หรือไม่ โดยใช้คีย์เวิร์ด “in”
      ตัวอย่างการใช้งาน

      # กำหนดตัวแปรเก็บข้อมูลชนิด tuple สำหรับเก็บข้อมูลชื่อของหน่วยฐานเอสไอทั้ง 7 หน่วย
      si_base_units = ( 'm:meter', 
      		'kg:kilogram', 
      		's:second', 
      		'A:ampere', 
      		'K:kelvin', 
      		'mol:mole', 
      		'cd:candela')
      
      # ทำการตรวจสอบข้อมูลชื่อหน่วย 'm:meter' ว่าเป็นชื่อหน่วยหนึ่ง ที่ถูกเก็บอยู่ในชุดข้อมูล
      # ของหน่วยฐานเอสไอหรือไม่
      print('m:meter' in si_base_units)
      # โปรแกรมทำการปรินต์ค่า
      # True
      
      # ทำการตรวจสอบข้อมูลชื่อหน่วย 'mol:mole' ว่าเป็นชื่อหน่วยหนึ่ง ที่ถูกเก็บอยู่ในชุดข้อมูล
      # ของหน่วยฐานเอสไอหรือไม่
      print('mol:mole' in si_base_units)
      # โปรแกรมทำการปรินต์ค่า
      # True
      
      # ทำการตรวจสอบข้อมูลชื่อหน่วย 'm^2:square meter' ว่าเป็นชื่อหน่วยหนึ่ง ที่ถูกเก็บอยู่
      # ในชุดข้อมูลของหน่วยฐานเอสไอหรือไม่
      print('m^2:square meter' in si_base_units)
      # โปรแกรมทำการปรินต์ค่า
      # False
      
      # ทำการตรวจสอบข้อมูลชื่อหน่วย 'm^2:square meter' ว่าเป็นชื่อหน่วยหนึ่ง ที่ไม่ถูกเก็บ
      # อยู่ในชุดข้อมูลของหน่วยฐานเอสไอหรือไม่
      print('m^2:square meter' not in si_base_units)
      # โปรแกรมทำการปรินต์ค่า
      # True
      

      จากตัวอย่าง เป็นการตรวจสอบชุดข้อมูลของหน่วยฐานเอสไอทั้ง 7 หน่วย ซึ่งถูกเก็บไว้เป็นข้อมูลชนิด tuple ซึ่งตรวจสอบว่ามีชื่อหน่วยที่ต้องการ ถูกระบุไว้ในชุดข้อมูลหรือไม่ โดยใช้คีย์เวิร์ด ‘in’ โดยหากมีชื่อหน่วยที่ระบุ โปรแกรมจะคืนค่าเป็น True แต่หากไม่มีข้อมูลดังกล่าวโปรแกรมจะคืนค่าเป็น False

    • การเข้าถึงข้อมูลใน tuple
      เราสามารถเข้าถึงข้อมูลแต่ละตัวที่มีอยู่ใน tuple โดยใช้ for loop
      ตัวอย่างการใช้งาน

      # กำหนดตัวแปรเก็บข้อมูลชนิด tuple สำหรับเก็บข้อมูลชื่อของหน่วยฐานเอสไอทั้ง 7 หน่วย
      si_base_units = ( 'm:meter', 
      		'kg:kilogram', 
      		's:second', 
      		'A:ampere', 
      		'K:kelvin', 
      		'mol:mole', 
      		'cd:candela')
      
      # ใช้ for...loop ในการเข้าถึงข้อมูลแต่ละตัวใน tuple
      for unit in si_base_units:
           print( unit ) 
      
      # โปรแกรมทำการปรินต์ค่า
      # m:meter
      # kg:kilogram
      # s:second
      # A:ampere
      # K:kelvin
      # mol:mole
      # cd:candela
      
      

      จากตัวอย่าง เป็นการเข้าถึงชุดข้อมูลของหน่วยฐานเอสไอทั้ง 7 หน่วย ซึ่งถูกเก็บไว้เป็นชุดข้อมูลชนิด tuple ด้วยการใช้ for loop ในการเข้าถึงข้อมูลตั้งแต่ตัวแรกไปจนถึงข้อมูลตัวสุดท้าย แล้วทำการปรินท์ค่าข้อมูลดังกล่าวออกมาแสดงผล

  8. ฟังก์ชันสำหรับทำงานกับ tuple

    ฟังก์ชัน รายละเอียด
    count(x) นับจำนวนของข้อมูลใน tuple ที่มีค่าเท่ากันกับที่ระบุใน x
    index(x) หาลำดับที่ของข้อมูลตัวแรก จากใน tuple ที่มีค่าเท่ากันกับที่ระบุ x

    ตัวอย่างการใช้งาน

    message = ('g', 'o', 'o', 'd', ' ', 'm', 'o', 'r', 'n', 'i', 'n', 'g')
    print("count alphabet 'o':", message.count('o') )
    # โปรแกรมทำการปรินต์ค่า
    # count alphabet 'o': 3
    
    print("first index of alphabet 'n':", message.index('n') )
    # โปรแกรมทำการปรินต์ค่า
    # first index of alphabet 'n': 8 
    
    message = ('t', 'h', 'a', 'n', 'k', ' ', 'y', 'o', 'u')
    print("count alphabet 'o':", message.count('o') )
    # โปรแกรมทำการปรินต์ค่า
    # count alphabet 'o': 1
    
    print("first index of alphabet 'k':", message.index('k') )
    # โปรแกรมทำการปรินต์ค่า
    # first index of alphabet 'k': 4 
    
    
  9. built-in ฟังก์ชันของ tuple

    ฟังก์ชัน รายละเอียด
    all() คืนค่า True ถ้าข้อมูลทุกตัวภายใน tuple เป็น True
    any() คืนค่า True ถ้าข้อมูลอย่างน้อย 1 ตัวใน tuple เป็นค่า True
    enumerate() คืนค่า enumerate object โดยภายในจะบรรจุข้อมูลลำดับและค่าของข้อมูลทุกตัวภายใน tuple เป็นคู่ๆ
    len() คืนค่าจำนวนของข้อมูลภายใน tuple
    max() คืนค่ามากที่สุดจากข้อมูลที่บรรจุอยู่ภายใน tuple
    min() คืนค่าน้อยที่สุดจากข้อมูลที่บรรจุอยู่ภายใน tuple
    sorted() ทำการอ่านข้อมูลที่บรรจุอยู่ภายใน tuple แล้วทำการเรียงลำดับข้อมูลเหล่านั้น แล้วจึงคืนค่าเป็นลิสต์ของข้อมูลที่เรียงลำดับแล้ว
    sum() คืนค่าผลรวมของข้อมูลทั้งหมดที่บรรจุอยู่ภายใน tuple
    tuple() ทำการแปลงข้อมูลประเภทอื่นเช่น ลิสต์, string, เซต, ดิกชันนารี่ ให้เป็นข้อมูลประเภท tuple

ที่มาของข้อมูล: https://www.programiz.com/python-programming/tuple
ข้อมูลเกี่ยวกับ SI units: https://physics.nist.gov/cuu/Units/units.html