ซ่อมคอมพิวเตอร์นอกสถานที่ บางกะปิ
www.becomz.com

WEBSITE DESIGN TEL 095-954-4524

วันจันทร์ที่ 17 ธันวาคม พ.ศ. 2555

Python Sequence Data Type ใน Python (List, String และ Tuple)



ทำความรู้จัก 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ข้อมูล
012
131.5
2True
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

คุณสมบัติListStringTuple
เก็บหลายข้อมูล
ใช้ 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 ที่เหมาะสม จะช่วยให้โค้ดอ่านง่าย ทำงานมีประสิทธิภาพ และลดข้อผิดพลาดในการพัฒนาโปรแกรม

Share:

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

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

Disqus Shortname

Comments system

ขับเคลื่อนโดย Blogger.

จำนวนการดูหน้าเว็บรวม

Blog Archive

Post Top Ad

คลังบทความของบล็อก

Author Details

Menu - Pages

Business

Random Posts

Recent

Popular

Blog Archive