
เจาะลึกโครงสร้างข้อมูล Python: เข้าใจดีกว่าแค่จำ
การเขียนโปรแกรมด้วย Python นั้นสนุกและทรงพลัง แต่จะยิ่งมีประสิทธิภาพมากขึ้น ถ้าเราเข้าใจ โครงสร้างข้อมูล (Data Structures) พื้นฐานอย่างถ่องแท้ ไม่ใช่แค่ท่องจำว่ามีอะไรบ้าง
การทำความเข้าใจหลักการทำงานของแต่ละโครงสร้าง จะช่วยให้เลือกใช้เครื่องมือที่เหมาะสมกับสถานการณ์ ทำให้โค้ดทำงานได้รวดเร็วขึ้น ใช้หน่วยความจำน้อยลง และอ่านเข้าใจง่ายกว่าเดิม
เปรียบเหมือนการสร้างบ้าน การรู้จักชนิดของวัสดุแต่ละอย่างว่ามีคุณสมบัติเฉพาะอย่างไร ย่อมดีกว่าการแค่รู้ชื่อวัสดุเหล่านั้นอย่างเดียว
List: กล่องเก็บของสารพัดประโยชน์
List คือหนึ่งในโครงสร้างข้อมูลที่ใช้บ่อยที่สุดใน Python เป็นเหมือน ลิสต์รายการสินค้า ที่เขียนอะไรลงไปก็ได้ และเรียงลำดับตามที่เราเพิ่มเข้าไป สามารถมีข้อมูลซ้ำกันได้ทุกเมื่อ
สำคัญคือ List เป็น mutable แปลว่าแก้ไข เปลี่ยนแปลง เพิ่ม หรือลบข้อมูลใน List ได้ตลอดเวลาหลังสร้างเสร็จ
ตัวอย่างการใช้งาน List เช่น เก็บรายชื่อนักเรียน ลำดับขั้นตอนการทำงาน หรือข้อมูลที่ต้องมีการเปลี่ยนแปลงบ่อยๆ การเข้าถึงข้อมูลทำได้ง่ายด้วย index หรือลำดับตำแหน่ง
Tuple: ข้อมูลที่ไม่เปลี่ยนแปลง
Tuple คล้ายกับ List ในแง่ของการเก็บข้อมูลแบบมีลำดับ และสามารถมีข้อมูลซ้ำกันได้
แต่ความแตกต่างที่สำคัญคือ Tuple เป็น immutable หมายความว่าเมื่อสร้าง Tuple ขึ้นมาแล้ว ไม่สามารถแก้ไข เพิ่ม หรือลบข้อมูลภายในได้เลย
ลองนึกถึง พิกัดทางภูมิศาสตร์ (ละติจูด, ลองจิจูด) ที่เมื่อกำหนดแล้วก็มักจะไม่เปลี่ยน หรือข้อมูลที่ต้องการความคงที่ ไม่ถูกแก้ไขโดยไม่ตั้งใจ
การใช้ Tuple จึงเหมาะสำหรับข้อมูลที่ต้องการความปลอดภัยจากการเปลี่ยนแปลง หรือข้อมูลที่ใช้เป็น คีย์ ใน Dictionary (เนื่องจากต้องเป็น immutable)
Set: กลุ่มของสิ่งของที่ไม่ซ้ำกัน
Set คือโครงสร้างข้อมูลที่เก็บ กลุ่มของข้อมูลที่ไม่ซ้ำกัน เป็นเอกลักษณ์เฉพาะตัว
ที่สำคัญคือ Set ไม่มีลำดับ เหมือน List หรือ Tuple ดังนั้นจะไม่มีแนวคิดของ index สำหรับการเข้าถึงข้อมูล
Set มีประโยชน์มากเมื่อต้องการจัดการกับข้อมูลที่ต้องการให้แต่ละองค์ประกอบไม่ซ้ำกัน เช่น การเก็บรายชื่อผู้ใช้ที่ไม่ซ้ำกัน หรือการกรองข้อมูลที่ซ้ำกันออกไป
นอกจากนี้ Set ยังรองรับการดำเนินการทางคณิตศาสตร์แบบเซตได้ดี เช่น การรวม (union) การตัดกัน (intersection) หรือการหาผลต่าง (difference) ของข้อมูลสองชุด
Dictionary: พจนานุกรมคีย์-ค่า
Dictionary เป็นโครงสร้างข้อมูลที่เก็บข้อมูลในรูปแบบของ คู่คีย์-ค่า (key-value pairs)
แต่ละค่าจะถูกเข้าถึงด้วย คีย์ (key) แทนที่จะเป็น index แบบตัวเลข ทำให้การเรียกใช้งานข้อมูลทำได้ง่ายและมีความหมายมากขึ้น
คีย์แต่ละตัวจะต้อง ไม่ซ้ำกัน และโดยทั่วไปมักจะเป็นข้อมูลประเภท immutable ส่วนค่าสามารถเป็นอะไรก็ได้ และเปลี่ยนแปลงได้
ตัวอย่างการใช้งาน Dictionary คือ เก็บข้อมูลโปรไฟล์ผู้ใช้ (ชื่อ: ‘John Doe’, อายุ: 30) หรือการแมปข้อมูลระหว่างสองชุด
ใน Python เวอร์ชัน 3.7 ขึ้นไป Dictionary ได้รับการปรับปรุงให้เก็บลำดับการเพิ่มคีย์ได้ด้วย
การเลือกใช้โครงสร้างข้อมูลที่ถูกต้องเป็นสิ่งสำคัญที่ช่วยให้โปรแกรมของเรามีประสิทธิภาพและทำงานได้ดียิ่งขึ้น
เมื่อเข้าใจถึงคุณสมบัติเฉพาะตัวของ List, Tuple, Set และ Dictionary แล้ว จะช่วยให้ตัดสินใจได้ว่าเมื่อไหร่ควรใช้อะไร และทำไมถึงควรใช้สิ่งนั้น
การคิดถึงลักษณะข้อมูลที่ต้องจัดการ เช่น ต้องการเก็บข้อมูลที่มีลำดับหรือไม่ ต้องการให้เปลี่ยนแปลงได้ไหม หรือต้องการให้ข้อมูลไม่ซ้ำกัน จะเป็นแนวทางในการเลือกใช้โครงสร้างข้อมูลที่เหมาะสมเสมอ
นี่คือรากฐานสำคัญที่จะต่อยอดไปสู่การเขียนโค้ดที่ซับซ้อนและมีคุณภาพในอนาคต