Python – Tuple
การเก็บข้อมูลแบบ tuple นั้นคล้ายกันกับลิสต์ ความแตกต่างกันตรง tuple นั้นเมื่อทำการกำหนดค่าลงไปให้กับตัวแปรแล้วจะไม่สามารถเปลี่ยนแปลงได้อีก แต่ลิสต์สามารถเปลี่ยนแปลงได้
-
ข้อได้เปรียบของ tuple เมื่อเทียบกับลิสต์
- เนื่องจาก tuple เป็นการเก็บข้อมูลแบบไม่สามารถแก้ไขข้อมูลได้(immutable) การเข้าถึงข้อมูลนั้นจะเร็วกว่าการเข้าถึงข้อมูลในลิสต์ ทำให้ได้เปรียบในเรื่องประสิทธิภาพ
- เนื่องจาก tuple บรรจุข้อมุลที่ไม่สามารถแก้ไขได้ จึงสามารถใช้ tuple เป็นคีย์(key) สำหรับการเก็บข้อมูลแบบ dictionary แต่ในสำหรับลิสต์นั้นไม่สามารถใช้งานแบบนี้ได้
- ถ้าต้องการเก็บข้อมูลที่ไม่ต้องการให้ข้อมูลเปลี่ยนแปลง การใช้งาน tuple จะช่วยป้องกันการแก้ไขข้อมูลได้
-
การสร้างข้อมูลชนิด 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
-
การสร้างข้อมูล tuple ในกรณีที่มีข้อมูลมากกว่า 1 ตัว
-
การเข้าถึงข้อมูลใน 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)
- การอ้างอิงลำดับของข้อมูล(index)
-
การเปลี่ยนแปลงข้อมูลใน 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)
- เปลี่ยนแปลงข้อมูลของ tuple เฉพาะข้อมูลซึ่งเป็นชนิดที่ทำการแก้ไขได้(mutable)
-
ทำการรวมข้อมูลชนิด 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 ขึ้นมา
-
ทำการคัดลอกซ้ำข้อมูลชนิด tuple ด้วยเครื่องหมาย “*”
เราสามารถใช้เครื่องหมายดำเนินการ “*” ในการคัดลอกข้อมูลเดิมตามจำนวนครั้งที่ระบุ แล้วสร้างเป็นข้อมูลชนิด tuple ใหม่ขึ้นมา
ตัวอย่างการใช้งาน# กำหนดตัวแปรเก็บข้อมูลชนิด tuple สำหรับเก็บ ชื่อหน่วยของข้อมูล data_units = ('m:meter',) # ใช้เครื่องหมายดำเนินการ "*" เพื่อคัดลอกข้อมูล print( data_units*3 ) # โปรแกรมทำการปรินต์ค่า # ('m: meter', 'm:meter', 'm:meter' )จากตัวอย่าง เป็นการใช้เครื่องหมายดำเนินการ “*” เพื่อทำการคัดลอกข้อมูล โดยเป็นการคัดลอกข้อมูลของหน่วยเมตร ซ้ำเป็นจำนวน 3 ครั้ง โดยเมื่อใช้เครื่องหมายดำเนินการเพื่อทำการคัดลอกข้อมูล โปรแกรมจะสร้างข้อมูลใหม่ชนิด tuple ขึ้นมาเพื่อเก็บข้อมูลชื่อหน่วยเมตร เป็นจำนวน 3 ข้อมูล
-
การลบข้อมูล 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”
-
การดำเนินการกับข้อมูลชนิด 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 ในการเข้าถึงข้อมูลตั้งแต่ตัวแรกไปจนถึงข้อมูลตัวสุดท้าย แล้วทำการปรินท์ค่าข้อมูลดังกล่าวออกมาแสดงผล
-
การตรวจสอบว่าข้อมูลที่ระบุมีอยู่ใน tuple หรือไม่
-
ฟังก์ชันสำหรับทำงานกับ 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 -
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
ข้อมูลเกี่ยวกับ SI units: https://physics.nist.gov/cuu/Units/units.html
