ทำความรู้จัก Sequence Data Type ใน Python (List, String และ Tuple)
Python มีโครงสร้างข้อมูล (Data Type) หลายประเภท โดยกลุ่มที่ใช้เก็บข้อมูลหลายค่าเรียกว่า Sequence Data Type ซึ่งสามารถเข้าถึงข้อมูลแต่ละตำแหน่งด้วย Index ได้
ในตัวอย่างนี้จะเรียนรู้ 3 ประเภท ได้แก่
List
String (str)
Tuple
แต่ก่อนอื่นต้องเข้าใจคำศัพท์สำคัญ 2 คำ
Mutable คือ สามารถแก้ไขข้อมูลภายในได้
Immutable คือ ไม่สามารถแก้ไขข้อมูลภายในได้
1. List (Mutable)
lst = [12, 31.5, True, [1,2,3], (2,3,4)]
print(type(lst), len(lst), lst[0], lst[-1], lst[-2][0])
lst[-1] = 'hello world'
print(lst)
List คืออะไร
List เป็นโครงสร้างข้อมูลที่ใช้เก็บข้อมูลหลายชนิดไว้ในตัวแปรเดียว
สามารถเก็บข้อมูลได้หลายประเภท เช่น
Integer
Float
Boolean
List
Tuple
String
ตัวอย่าง
lst = [12, 31.5, True, [1,2,3], (2,3,4)]
ภายใน List นี้ประกอบด้วย
| Index | ข้อมูล |
|---|---|
| 0 | 12 |
| 1 | 31.5 |
| 2 | True |
| 3 | [1,2,3] |
| 4 | (2,3,4) |
การใช้ type()
type(lst)
ใช้ตรวจสอบชนิดข้อมูล
ผลลัพธ์
<class 'list'>
การใช้ len()
len(lst)
ใช้หาจำนวนสมาชิกทั้งหมด
ผลลัพธ์
5
การเข้าถึงข้อมูลด้วย Index
lst[0]
ผลลัพธ์
12
Index เริ่มต้นที่ 0 เสมอ
การใช้ Negative Index
lst[-1]
ผลลัพธ์
(2,3,4)
Negative Index จะเริ่มนับจากด้านหลัง
| Index | สมาชิก |
|---|---|
| -1 | ตัวสุดท้าย |
| -2 | ตัวรองสุดท้าย |
| -3 | ตัวที่สามจากท้าย |
การเข้าถึงข้อมูลซ้อนกัน (Nested Index)
lst[-2][0]
อธิบาย
lst[-2]
ได้
[1,2,3]
จากนั้น
[1,2,3][0]
ได้ผลลัพธ์
1
การแก้ไขข้อมูลใน List
lst[-1] = "hello world"
ผลลัพธ์
[12, 31.5, True, [1,2,3], 'hello world']
เนื่องจาก List เป็น Mutable
จึงสามารถแก้ไข เพิ่ม หรือลบสมาชิกได้
2. String (Immutable)
s = "This is an example of Class 5 for sequence type"
print(type(s), len(s), s[0], s[-1], s[-2])
s[-1] = 'X'
print(s)
String คืออะไร
String คือข้อความที่ประกอบด้วยตัวอักษรหลายตัวเรียงต่อกัน
ตัวอย่าง
"This is Python"
ใน Python
String ก็เป็น Sequence เช่นเดียวกัน
จึงสามารถใช้ Index ได้
การเข้าถึงข้อมูล
s[0]
ผลลัพธ์
'T'
และ
s[-1]
ผลลัพธ์
'e'
ทำไมแก้ไขไม่ได้
s[-1] = 'X'
จะเกิดข้อผิดพลาด
TypeError:
'str' object does not support item assignment
เพราะ
String เป็น Immutable
เมื่อสร้างแล้วจะไม่สามารถเปลี่ยนตัวอักษรบางตำแหน่งได้
หากต้องการเปลี่ยน ต้องสร้าง String ใหม่
ตัวอย่าง
s = s[:-1] + "X"
3. Tuple (Immutable)
tp = (12, 31.5, True, [1,2,3], (2,3,4))
print(type(tp), len(tp), tp[0], tp[-1], tp[-2][0])
tp[-1] = "hello world"
print(tp)
Tuple คืออะไร
Tuple คล้ายกับ List
สามารถเก็บข้อมูลหลายชนิดได้เหมือนกัน
ตัวอย่าง
(12, 31.5, True, [1,2,3], (2,3,4))
แต่แตกต่างกันตรงที่
Tuple เป็น Immutable
การใช้งาน
สามารถ
อ่านข้อมูล
ใช้ Index
ใช้ Negative Index
ใช้ len()
ใช้ type()
ได้เหมือน List
ตัวอย่าง
tp[0]
ผลลัพธ์
12
ทำไมแก้ไขไม่ได้
tp[-1] = "hello world"
จะเกิดข้อผิดพลาด
TypeError:
'tuple' object does not support item assignment
เพราะ Tuple ไม่สามารถเปลี่ยนสมาชิกหลังจากสร้างเสร็จแล้ว
เปรียบเทียบ List, String และ Tuple
| คุณสมบัติ | List | String | Tuple |
|---|---|---|---|
| เก็บหลายข้อมูล | ✅ | ✅ | ✅ |
| ใช้ Index | ✅ | ✅ | ✅ |
| ใช้ Negative Index | ✅ | ✅ | ✅ |
| ใช้ len() | ✅ | ✅ | ✅ |
| แก้ไขข้อมูลได้ | ✅ | ❌ | ❌ |
| Mutable | ✅ | ❌ | ❌ |
| Immutable | ❌ | ✅ | ✅ |
แล้ว Dict และ Set อยู่ตรงไหน?
แม้หัวข้อจะกล่าวถึง List, Tuple, Dict และ Set แต่ในตัวอย่างโค้ดนี้มีการใช้งานเฉพาะ List, String และ Tuple
สำหรับอีก 2 ประเภท
Dictionary (dict) ใช้เก็บข้อมูลในรูปแบบ Key : Value เหมาะกับข้อมูลที่ต้องการค้นหาด้วยชื่อคีย์ เช่น ข้อมูลผู้ใช้ หรือข้อมูลสินค้า
Set (set) ใช้เก็บข้อมูลที่ ไม่ซ้ำกัน และไม่มีลำดับ (Unordered) เหมาะสำหรับการตัดข้อมูลซ้ำ หรือการดำเนินการทางเซต เช่น Union และ Intersection
สรุป
Sequence Data Type เป็นโครงสร้างข้อมูลที่ใช้เก็บข้อมูลหลายค่าในตัวแปรเดียว และสามารถเข้าถึงข้อมูลด้วย Index ได้
List เป็น Mutable สามารถเพิ่ม ลบ และแก้ไขข้อมูลได้
String เป็น Immutable ใช้เก็บข้อความ ไม่สามารถแก้ไขตัวอักษรแต่ละตำแหน่งได้
Tuple เป็น Immutable ใช้เก็บข้อมูลที่ไม่ต้องการให้เปลี่ยนแปลงหลังจากสร้าง
Dictionary ใช้เก็บข้อมูลแบบ Key-Value เพื่อค้นหาข้อมูลได้สะดวก
Set ใช้เก็บข้อมูลที่ไม่ซ้ำกัน และไม่มีลำดับ
การเลือกใช้ Data Type ที่เหมาะสม จะช่วยให้โค้ดอ่านง่าย ทำงานมีประสิทธิภาพ และลดข้อผิดพลาดในการพัฒนาโปรแกรม







0 ความคิดเห็น:
แสดงความคิดเห็น