The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

โครงสร้างข้อมูล

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by chaowalert, 2020-01-13 03:56:45

โครสร้างข้อมูล

โครงสร้างข้อมูล

Keywords: structure

LESSON

2 โครงสรา้ งขอ้ มลู เบ้ืองตน้

ชนิดขอ้ มูล (Data Type)

ชนิดข้อมูลในภาษาไพทอนแบ่งออกเป็น 2 กลุ่มหลัก ๆ คือ ข้อมูลพื้นฐาน (Basic data types) และ
ขอ้ มูลเชิงประกอบ (Composite data types)

1. ขอ้ มลพื้นฐาน (Basic data types)

ข้อมูลพ้ืนฐาน แบ่งออกเป็น 2 กลุ่มย่อย คือ ข้อมูลท่ีเกี่ยวข้องกับตัวเลข (Numeric) และข้อมูลสาย
อกั ษร (String)

1.1 ขอ้ มลู ตัวเลข (Numeric) หมายถึงขอ้ มูลทเี่ ป็นชุดของตัวเลขซ่ึงประกอบดว้ ย เชน่ เลขจานวน
นับ ซึ่งเลขจานวนนับนี้มีคุณสมบัติสามารถเพ่ิมค่าได้ คานวณได้ และเปล่ียนแปลงค่าได้ มี ท้ังหมด 4 ชนิด
ได้แก่ เลขจานวนเตม็ (Integers) ตัวเลขทศนิยม หรือจานวนจริง (Floating-Point numbers) จานวนตรรกะ
(Boolean) และจานวนเชิงซ้อน (Complex Numbers)

1) เลขจานวนเต็ม (Integers) คือข้อมูลท่ีเป็นตัวเลขท่ีไม่มีจุดทศนิยม เช่น 1, 300, 32549
จานวนเต็มในบางภาษาอาจมีจานวนหลักได้จากัด แต่ว่าในภาษาไพทอนสามารถมีจานวนหลักได้ไม่จากัด
ข้ึนกับหนว่ ยความจาของเครื่อง

2) ตัวเลขทศนิยม หรือจานวนจริง (Floating-Point numbers) เลขจานวนจริง หรือเรียก
สั้นๆ ว่า Float คือจานวนท่ีมีทศนิยม ซ่ึงสามารถเขียนได้ 2 รูปแบบ คือ เขียนตัวเลขทศนิยมท่ีมีเครื่องหมาย
จุดทศนิยม ตัวอย่างเช่น 3.14 หรือ เขียนอยู่ในรูปเลขยกกาลังสิบ (Exponential form) โดยใช้ตัวอักษร E
หรือ e ระบจุ านวนท่เี ปน็ เลขยกกาลัง เช่น 6.12E3 = 6.12 X 103 หรือ 125.03E-5 = 125.03 X 105 เป็นต้น

3) จานวนตรรกะ (Boolean) จานวนตรรกะ ใช้คาย่อในการเขียนโปรแกรมคือ bool เป็น
ชนิดของตัวแปรที่สามารถเก็บคา ลอจิก จริง (True) หรือ เท็จ (False) ตัวแปรชนิดนี้ เป็นท่ีรู้จักกันอีกชื่อคือ
ตัวแปรบูลีน (Boolean) ตวั อย่างคาที่ถูกเกบ็ ในตัวแปรชนดิ bool ได้แก่ 1 = True และ 0 = False

4) จานวนเชิงซอ้ น (Complex number) คอื ขอ้ มลู ท่ีประกอบดว้ ยส่วนจรงิ และสว่ นจินตภาพ
โดยส่วนจินตภาพจะเขียนโดยต่อท้ายด้วย j เช่น 1+2j , 5.32j จานวนเชิงซ้อนเป็นอะไรท่ีเป็นนามธรรมเป็น
อยา่ งมาก และมกั ใชใ้ นคณิตศาสตร์ระดับสงู

1.2 ข้อมูลชนิดสายอกั ษร (String)
ข้อมูลสายอักษรหรือสตริง หมายถึงข้อมูลที่เป็นตัวอักษรข้อความ หรือประโยค ซ่ึงตัวแปร ชนิดน้ีไม่
สามารถนามาคานวณได้ ในการประกาศตัวแปรชนิดน้ีข้อความจะต้องอยู่ภายใต้เคร่ืองหมาย (" ") หรือ
เคร่ืองหมาย (' ') กากับอยู่ เชน่ author = 'Suchart' หรอื author = "Suchart" ดังนั้นในกรณี ทมี่ กี ารเก็บใน
ลักษณะเป็นตัวเลข เช่น '15.25' จึงมีความหมายเป็นเพียงสายอักษร ไม่สามารถนามา ประมวลผลได้ แต่ถ้า

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 13

ต้องการให้คานวณได้ จาเป็นต้องใช้ฟังก์ชันเพ่ือเปลี่ยนชนิดตัว แปร จากสายอักษรไปเป็นจานวนเต็ม หรือ
จานวนจริง จึงจะสามารถประมวลผลได้ วธิ ีการ เขียนคาสั่งเพ่อื เก็บข้อมูลชนิดตัวแปรสายอักษร ดังน้ี

var1 = 'Hello World!'
var2 = "Python Programming"
ประกาศให้ตัวแปร var1 มีคาเท่ากับ Hello World! และ var2 เท่ากับ Python Programming
ภาษาไพทอนไม่สนับสนุนตัวแปรแบบอักษร เช่น A, 1 ดังน้ัน ถ้าต้องการใช้งานลกั ษณะดังกลา่ วจะต้องทาการ
ระบุลาดับของตัวอักษรน้ัน ๆ ในสตริงแทนโดยใช้เครื่องหมาย [ ] เข้าช่วย เช่นถ้าต้องการข้อมูล ‘W’ ใน ตัว
แปร var1 ทาได้โดยอ้างตัวแปรและตามดว้ ย [ตาแหน่งของตัวอกั ษร] เช่น var1[6]

Index 0 1 2 3 4 5 6 7 8 9 10 11 12
var1 h e l l o w o r l d ! \n

Index 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
var2 p y t h o n p r o g r a m m i n g \n

ตัวอยา่ งท่ี 2.1 การใชต้ วั แปร string

1 var1 = 'Hello World!'
2 var2 = "Python Programming"
3 print(var1[6])
4 print(var2[1:5])
ผลลัพธท์ ี่ได้

W
ytho

จากตัวอย่าง สามารถเขา้ ถงึ ขอ้ มลู เฉพาะบางสว่ นของสตริงไดโ้ ดยใช้คาส่งั

ชือ่ ตัวแปร[ตาแหน่งเรม่ิ ดน้ : ตาแหนง่ สน้ิ สดุ ]

เช่น var2[1:5] คาทไ่ี ด้คอื ytho

2. ขอ้ มูลเชิงประกอบ (Composite data types)

คือข้อมูลท่ีนักเรียนสามารถสร้างข้ึนมาโดยการผสม หรือประกอบจากชนิดข้อมูลท่ีแตกต่างกันก็ ได้
ขึ้นมาใช้งานได้เอง สามารถเก็บข้อมูลได้โดยท่ีไม่จาเป็นต้องเป็นชนิดเดียวกัน เช่น data = {'name', 25, [-3,
6]} เป็นต้น ข้อมูลเชิงประกอบมีหลายชนิดประกอบไปด้วย ลิสต์ (Lists) ทัพเพิล (Tuples) ดิกชันนารี
(Dictionaries) และเซต (Set)

lesson 2 โครงสรา้ งขอ้ มลู พ้ืนฐาน 14

ลสิ ต์ (Lists)

ตัวแปรชนิดลิสต์ (list) คือ ตัวแปรที่สามารถเก็บข้อมูลได้หลายจานวนต่อเน่ืองกันภายในตัวแปร
เดียวกัน (สามารถเก็บข้อมูลต่างชนิดกันได้) เป็นตัวแปรที่เกิดข้ึนใน ภาษาใหม่ๆ การเข้าถึงข้อมูลภายในลิสต์
จะตอ้ งระบุดว้ ยดชั นลี าดับของข้อมลู (ตาแหนง่ ที่เก็บข้อมูล) ที่เก็บเอาไว้โดยเร่ิมกันจาก 0 ลิสตม์ คี วามสามารถ
ใช้ดัชนีท่ีเป็นค่าลบ (เข้าถึง ข้อมูลจากด้านหลังของลิสต์) ได้ น้ันคือ ถ้าเป็น -1 หมายถึง ข้อมูลลาดับท้ายสุด
ของลิสต์ ตัวแปรชนิด ลิสต์ใช้สัญลักษณ์ [ ] ในการเก็บข้อมูล และแยกข้อมูลแต่ละตัวด้วยสัญลักษณ์ , ดัง
ตัวอย่างในรปู

Index 0 1 2 3 4 5 6 7 8 9 10 11 12
S 3 4 9 11 2 1 5 7 9 8 22 3 4
Index -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1

จากรปู แสดงโครงสร้างของลสิ ต์ สงั เกตว่าตาแหน่งสาหรบั เข้าถึงข้อมลู ดา้ นซ้าย (index) จะเริม่ จาก 0
ไป จนถึง n-1 แต่เมื่อต้องการเข้าถึงข้อมูลจากส่วนท้ายของลิสต์ทาได้โดยการอ้าง ตาแหน่งโดยใช้ค่าลบ
(-index) ซึ่งข้อมูลในลาดับที่อยู่ท้ายสุดจะเป็น -1 เมื่อต้องการเข้าถึงข้อมูล 11 สามารถเข้าถึงได้ 2 แบบคือ
[3] และ [-10]

สาหรับการเก็บข้อมูลจริงเม่ือทาการเขียนโปรแกรม ตัวแปร ลิสต์จะอยู่ภายในเคร่ืองหมาย [ ] และ
แยกขอ้ มลู ด้วย การประกาศตัวแปรลสิ ตใ์ ชค้ าสั่งดงั น้ี

ตัวอยา่ งท่ี 2.2 การใช้ตวั แปร list

1 list = [1,2,3,4,“PCC”,5,“school”]
2 print(list)
3 print(type(list))

ผลลพั ธ์ท่ีได้

[1 ,2 ,3 ,4 ,”PCC” ,5 ,”school”]
<class ‘list’>

การประกาศตวั แปรสามารถกาหนดชนดิ ขอ้ มลู ทแ่ี ตกตา่ งด้นได้ เช่น
ตวั อยา่ งที่ 2.3 การใชต้ วั แปร list

1 list0 = [] #List วา่ ง

2 list1 = [‘Com’, ’Chemistry’, 1992, 2010];

3 list2 = [1 ,2 ,3 ,4 ,5 ];

4 list3 = [‘a’, ‘b’ , ‘c’ , ‘d’];

5 print(list0)

6 print(list1)

ผลลพั ธท์ ่ไี ด้

[]

[‘Com’, ’Chemistry’, 1992, 2010]

lesson 2 โครงสรา้ งขอ้ มลู พ้ืนฐาน 15

การเข้าถึงข้อมูลสามารถเข้าถึงได้โดยใช้ [index], [-index] หรือเข้าถึงเป็นช่วงข้อมูลโดยใช้
[index_start: index_stop] ดงั ตัวอย่างตวั ไปน้ี

ตัวอย่างที่ 2.4 การใชต้ วั แปร list

1 List1 = ['physics', 'chemistry', 1997, 2000];
2 list2 = [1, 2, 3, 4, 5, 6, 7 ];
3 print ("list1[0] : ", list1 [0])
4 print ("list1[-1] : ", list1[-1])
5 print ("list2[3] : “, list2[3])
6 print ( "list2[-4] : “, list2[-4])
7 print ("list2[1:5] : ", list2[1:5])
8 print ("list2[::2] : ", list2[::2])
9 print ("list2[2::2] : ", list2[2::2])
10 print ("list2[2:7:2] : ", list2 [2:7:2])
11 print ("list2[:7] :", list2[:7])
12 print ( "list2[4:] :", list2[4:])

ผลลพั ธท์ ี่ได้

listl[0] : physics
listl[-1] : 2000
list2[3] : 4
list2[-4] : 4
list2[1:5] : [2, 3, 4, 5]
list2[::2] : [1, 3, 5, 7]
list2[2::2] : [3, 5, 7]
list2[2:7:2] : [3, 5, 7]
list2[:7] : [1, 2, 3, 4, 5, 6, 7]
list2[4:] : [5, 6, 7]
จากตัวอยา่ งเราสามารถเข้าถงึ ข้อมูลของลิสต์ใดห้ ลายลักษณะ เหมือนสตริง เช่น เข้าถงึ ข้อมลู จากส่วน
หวั จากส่วนหาง เขา้ ถึงแบบเจาะจง หรือเขา้ ถึงเปน็ ชว่ ง เป็นตน้ จากตวั อย่างขา้ งต้น
[0] คือเขา้ ถึงข้อมลู ในตาแหนง่ แรกตรงสว่ นหัวของลสิ ต์
[-1] คือเข้าถงึ จาก สว่ นหางตาแหน่งแรก
[1:5] คือเข้าถึงขอ้ มูลต้งั แตต่ าแหนง่ ท่ี 1 ถงึ 5 จากส่วนหวั ลิสต์
[::2] คอื เขา้ ถงึ ข้อมลู จากส่วนหวั ตง้ั แตต่ าแหนง่ แรกถงึ ท้ายสดุ ของลสิ ตโ์ ดยกระโดดเป็นชว่ ง ชว่ งละ 2 ตาแหนง่
[2::2] คือเข้าถึงข้อมูลตั้งแต่ตาแหน่งที่ 2 จากส่วนหัวของลิสต์ใปถึงตาแหน่งสุดท้ายของลิสต์โดยกระโดดเป็น
ช่วง ชว่ งละ 2 ตาแหน่ง
[2:7:2] คือเข้าถึงข้อมูลจากหัวลิสต์ตั้งแต่ตาแหน่งที่ 2 ไปจนถึงตาแหน่งที่ 7 โดยกระโดดเป็นช่วง ช่วงละ 2
ตาแหนง่
[:7] คอื การเขา้ ถงึ ข้อมูลจากหัวลสิ ต์ถงึ ตาแหนง่ ที่ 7 และ
[4:] คือเข้าถึงข้อมลู เร่มิ จากตาแหนง่ ที่ 4 ของหัวลิสต์ใปจนถงึ ค่าตวั สดุ ทา้ ยของลสิ ต์

lesson 2 โครงสรา้ งขอ้ มลู พ้ืนฐาน 16

การปรับปรุงแก้ไขข้อมูลในลิสต์ สามารถทาได้โดยอ้างถึงตาแหน่งข้อมูลที่ต้องการแก้ไข โดยใช้
[index] หรือ [-index] เช่น

ตัวอยา่ งท่ี 2.5 การใชต้ ัวแปร list

1 list = ['physics', 'chemistry', 1997, 2000];

2 print ("Old value available at index 2 : ",list[2])

3 list[2] = 2001; #คาสง่ั แทนคา่

4 print ("New value available at index 2 : ",list[2])

ผลลัพธ์ที่ได้

Old value available at index 2 : 1997

New value available at index 2 : 2001

การลบขอ้ มูลออกจากลิสตท์ าได้โดยใชค้ า่ ส่งั del แล้วตามดว้ ยตาแหนง่ สมาชกิ ทีต่ ้องการจะลบ
[index] หรือ [-index] เชน่

ตวั อย่างท่ี 2.6 การใชต้ ัวแปร list

1 list1 = ['physics', 'chemistry', 1997, 2000];

2 print ("Before deleting index 2: ",list1);

3 del list1[2]; #คาส่งั ลบค่า

4 print("After deleting index 2: ",list1);

ผลลัพธ์ทีไ่ ด้

Before deleting index 2: ['physics', 'chemistry', 1997, 2000]

After deleting index 2: ['physics', 'chemistry', 2000]

ตวั ดาเนินการพนื้ ฐานของลิสต์ (Basic list operations) สาหรบั ตวั แปรแบบลิสต์สามารถใชส้ ัญลักษณ์

* และ + เช่นเดียวกับสตริงได้ ในลักษณะการ เช่ือมค่าของสมาชิกเข้าด้วยกัน (+) และการทาซ้าข้อมูล (*)

สาหรบั ตวั อย่างของการใชง้ านตัวดาเนินการ พ้ืนฐานมีดังต่อไปนี้

สมมุติให้ lst1 = [1, 2, 3] และ lst2 = [4, 5, 6]

len(lst1) = 3 # จานวนของสมาชิก หรอื ความยาวของ lst1 เทา่ กบั 3

lst1 + lst2 = [1, 2, 3, 4, 5, 6] # list concatenation

lst1 * 3 = [1, 2, 3, 1, 2, 3, 1, 2, 3]

3 in lst1 # 3 อยู่ใน lst1 หรอื ไม่ คาตอบคือ จริง (True)

for x in lst1: print (x) # พมิ พข์ ้อมลู สมาชกิ ใน lst1 โดยใช้ for คาตอบคอื 1, 2, 3

lesson 2 โครงสรา้ งขอ้ มลู พ้ืนฐาน 17

ตวั อยา่ งท่ี 2.7 การใชต้ ัวแปร list

1 lst1 = [1, 2, 3]; lst2 = [4, 5, 6]
2 print("length of lst1 :",len(lst1))
3 print("lst1 + lst2 :",lst1 + lst2)
4 print("lst1 * 3 :",lst1*3)
5 print("Elements in lst1 are :")
6 for x in lst1:
7 print (x)

ผลลัพธ์ทีไ่ ด้

length of lst1 : 3
lst1 + lst2 : [1, 2, 3, 4, 5, 6]
lst1 * 3 : [1, 2, 3, 1, 2, 3, 1, 2, 3]
Elements in lst1 are :
1
2
3

การเปรียบเทยี บขอ้ มูลในตัวแปรลิสตส์ ามารถทาได้เหมือนสตริง โดยใช้ตัวดาเนินการคอื <, <=, >,
>=, ==, !=, in และ not in ดงั ต่อไปนี้
ตวั อยา่ งท่ี 2.8 การใช้ตวั แปร list

1 lst1 = [1,2,3,4,5]
2 lst2 = [9,8,7,6,5]
3 lst3 = [9,8,7,6,5]
4 lst4 = [8,7]
5 print("lst1 < lst2 :",lst1 < lst2)
6 print("lst1 > lst2 :",lst1 > lst2)
7 print("lst2 >= lst1 :",lst2 >= lst1)
8 print("lst2 == lst3 :",lst2 == lst3)
9 print("8 in lst3 :",8 in lst2)
10 print("lst4 not in lst2 :",lst4 not in lst2)

ผลลัพธ์ที่ได้

lst1 < lst2 : True
lst1 > lst2 : False
lst2 >= lst1 : True
lst2 == lst3 : True
8 in lst3 : True
lst4 not in lst2 : True

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 18

การเปรยี บเทยี บในลสิ ตจ์ ะเป็นการเปรียบเทียบในลักษณะคา่ ต่อคา่ หรือสมาชิกต่อสมาชิก ทีละตวั ไป
เรื่อย ๆ ในกรณีแรก lst1 < lst2 โปรแกรมจะเร่มิ ตรวจสอบคู่ของ lst1 และ lst2 คู่แรกกอ่ น ในทีน่ ี้คอื 1
(lst1[0]) กับ 9 (lst2[0]) ผลท่ีได้คือ 1 < 9 จริง ดังน้นั ผลลพั ธท์ ี่ไดจ้ ะเปน็ จริง (True) สาหรบั ตัว ดาเนินการ
แบบ in และ not in จะเปน็ การตรวจสอบสมาชิกท่ีอยูภ่ ายในลิสตว์ า่ มีอยูห่ รอื ไม่ จากตัวอย่าง 8 อยู่ใน lst3
ดงั น้นั ผลลพั ธท์ ี่ได้คือ เป็นจรงิ การแสดงผลขอ้ มูลในลสิ ต์ท่มี ีความยาวมาก ๆ นิยมใช้การทาซ้าช่วยในการ
แสดงผลในส่วนนจี้ ะขอแนะนาการใช้ for สาหรับแสดงผลข้อมูลดังน้ี
ตวั อย่างที่ 2.9 การใชต้ ัวแปร list

1 Sum = 0;
2 for i in [2,3,5,7,11,13,17,19]:
3 Sum += i
4 print ("Summation of list :",Sum)

ผลลัพธท์ ่ีได้
Summation of list : 77

จากตวั อยา่ งเป็นการหาผลรวมของสมาชิกทง้ั หมดในลิสต์ โดยใช้ for ในการวนลบู ซ้า เพื่อดึงค่าข้อมูล
ในลสิ ต์มาทลี ะตวั และทาการหาผลรวมของสมาชิกท้ังหมดเอาไว้ในตัวแปร Sum คาสัง่ for จะวนซา้ ทั้งหมด 8
คร้ังจึงหยุดทางาน ผลลัพธ์ท่ีเกิดจากผลรวมของสมาชิกในลิสต์มีค่าเท่ากับ 77เม่ือต้องการลบข้อมูลตัวใดตัว
หนึ่งของสมาชกิ ภายในลสิ ต์ หรือลบตัวแปรลสิ ต์ท้ิงลสิ ต์ สามารถ ทาได้โดยใชค้ าสง่ั del และตามด้วยตาแหนง่
สมาชกิ หรือตวั แปร เช่น
ตวั อย่างที่ 2.10 การใช้ตวั แปร list

1 lst = [i*1 for i in range(10)]
2 print("list befor removing member:",lst)
3 del lst[0], lst[2], lst[4], lst[6]
4 print("list after removing member:",lst)
5 del lst
6 print("list after removing member:",lst)
ผลลพั ธท์ ีไ่ ด้

list befor removing member: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list after removing member: [1, 2, 4, 5, 7, 8]
Traceback (most recent call last):

File "C:\Python34\testx.py", line 6, in
print("list after removing member:",lst)
NameError: name 'lst' is not defined

จากโปรแกรมตัวอย่างด้านบน คาส่ัง [i*1 for i in range(10)] คือการสร้างลิสต์โดยใช้ for ทางาน
ร่วมกับนิพจน์คณิตศาสตร์ โดยค่า i จะมีค่าตั้งแต่ 0 – 9 จากนั้นนาค่า i แต่ละค่ามาคูณกับ 1 ทาให้ได้ผลลัพธ์
เป็นตัวแปรลิสต์ท่ีมีสมาชิกเป็น [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] ต่อจากน้ันทดสอบลบข้อมูลโดยใช้คาสั่ง

lesson 2 โครงสรา้ งขอ้ มลู พ้ืนฐาน 19

del lst[0], lst[2], lst[4], lst[6] ส่งผลให้สามาชิกท่ีตาแหน่ง 0, 2, 4 และ 6 ถูกลบออกไป เมื่อทาการลบตัว
แปรด้วยคาส่ัง del lst และทดสอบพิมพ์ค่าข้อมูลท่ีอยู่ภายในตัวแปรดังกล่าวอีกครั้ง ผลที่ได้คือ ไพทอนจะ
แสดงข้อผดิ พลาดออกมาเน่ืองจากตัวแปรดงั กลา่ วได้ถูกลบออกไปจากหนว่ ยความจาเรยี บร้อยแล้วนนั่ เอง

ตัวอยา่ งที่ 2.11 การเพม่ิ ค่าลงไปในตัวแปร Lists เราสามารถใช้เมธอด append ดงั น้ี

1 myList1 = [ ]
2 myList2 = [1,2,'A','B']
3 myList1.append(10)
4 myList2.append('C')
5 print(myList1)
6 print(myList2)

ผลลพั ธ์ท่ีได้

[10]
[1, 2, 'A', 'B', 'C']

การใชง้ านฟงั ก์ชันกับ List

ในบทนี้ เราจะพูดถึงการใช้งาน List เมธอด ในภาษา Python เนื่องจาก List เป็นออบเจ็ค ดังน้ัน
Python จึงไดใ้ ห้เมธอดต่างๆ สาหรับทางานพื้นฐานกบั List ท่ชี ว่ ยอานวยความสะดวกในการทางานเป็นอย่าง
มาก นอกจากน้ี เรายังจะพูดถึงการใช้งาน built-in function กับ List ถึงแม้ในภาษา Python น้ันมีเมธอด
และฟังก์ชันเป็นจานวนมาก แตเ่ ราจะมาดตู ัวอยา่ งการใช้งานเฉพาะทส่ี าคัญ

โดยเมธอดท่คี วรศึกษาของ List ในภาษา Python มดี ังน้ี

Methods Description
เพิ่มออบเจ็ค x เข้ามายัง List
append(x) เพ่มิ ข้อมลู จาก iterable เข้ามายงั List
extend(iterable) ใสอ่ อบเจ็ค x เข้ามายงั List ทต่ี าแหนง่ i
insert(i, x) นาออบเจ็ค x อันแรกท่ีพบใน List ออก
remove(x) นาข้อมูลอนั สุดทา้ ยออกจาก List
pop([i]) ลบขอ้ มูลทั้งหมดภายใน List
clear() ค้นหาตาแหน่งของออบเจค็ x
index(x[, start[, end]]) นบั ออบเจ็ค x ใน List
count(x) เรียงขอ้ มูลภายใน List จากน้อยไปมาก
sort(key=None,
reverse=False) ย้อนกลับลาดับของ List
reverse() คดั ลอก List ท้งั หมด
copy()

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 20

append(x)เพมิ่ ออบเจค็ x เข้ามายงั List
extend(iterable) เพ่ิมข้อมลู จาก iterable เข้ามายงั List
insert(i, x) ใสอ่ อบเจค็ x เข้ามายงั List ทีต่ าแหน่ง i

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 21

remove(x) นาออบเจ็ค x อันแรกท่พี บใน List ออก
pop([i]) นาขอ้ มูลอันสดุ ทา้ ยออกจาก List
clear() ลบข้อมูลท้ังหมดภายใน List

lesson 2 โครงสรา้ งขอ้ มลู พ้ืนฐาน 22

index(x[, start[, end]]) ค้นหาตาแหน่งของออบเจ็ค x
count(x) นับออบเจค็ x ใน List
sort(key=None, reverse=False) เรียงข้อมลู ภายใน List จากนอ้ ยไปมาก

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 23

reverse() ย้อนกลบั ลาดบั ของ List
copy() คดั ลอก List ทงั้ หมด

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 24

ทพั เพิล (Tuples)

ทัพเพิลมีลักษณะโครงสร้างคล้ายกับลิสต์ คือ สามารถเก็บข้อมูลได้ในปริมาณมาก และสามารถ เก็บ
ข้อมูลต่างประเภทกันได้ภายในตัวแปรเดียวกัน ข้อแตกต่างระหว่างลิสต์กับทัพเพิลคือ ทัพเพิลจะใช้ สาหรับ
เก็บข้อมูลท่ีมีค่าคงท่ี และไม่มีการเปล่ียนแปลง คล้ายอะเรย์ท่ีมีขนาดคงท่ี ไม่สามารถเพ่ิมหรือลบ ข้อมูล
ทพั เพลิ ได้โดยตรง แตท่ าใหม้ ขี ้อไดเ้ ปรยี บในเรื่องของความเร็วในการเขา้ ถึงข้อมูล สาหรับการเขา้ ถึงข้อมูลทาได้
ไดยใชต้ ัวช้ีหรือดชั นีเหมือนลิสต์ตัวแปรทัพเพิลจะใช้สัญลักษณ์ (...) ในการประกาศ ตัวแปร และสมาชกิ ภายใน
ทัพเพีลจะคนั้ ดว้ ย , ตงั ตัวอย่าง
ตัวอย่างที่ 2.12 การใชต้ ัวแปร Tuples

1 tup1 = (12, 34.56)
2 tup2 = ('abc', 'xyz')
3 tup3 = (19, 12.5, 'Python',"HELLO")
4 tup4 = (tup1, tup2, tup3)
5 tup5 = tup1 + tup2
6 print(tup1)
7 print(tup2)
8 print(tup3)
9 print(tup4)
10 print(tup5)
11 type(tup1)
ผลลพั ธ์ทีไ่ ด้

(12, 34.56)
('abc', 'xyz')
(19, 12.5, 'Python', 'HELLO')
((12, 34.56), ('abc', 'xyz'), (19, 12.5, 'Python', 'HELLO'))
(12, 34.56, 'abc', 'xyz')
tuple

ตัวอยา่ งท่ี 2.13 การกาหนดคา่ เรมิ่ ตน้ ให้กบั ทัพเพลิ เป็นค่าวา่ ง
1 tup1 = ();
2 print ("Tuple empty : ",tup1)

ผลลัพธท์ ไ่ี ด้
Tuple empty : ()

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 25

ตัวอยา่ งท่ี 2.14 การกาหนดค่าสมาชกิ ให้กบั ทัพเพิลเพยี งค่าเดียว สามารถทาได้ 2 รปู แบบ
1 tup1 = (30);
2 tup2 = (30,);
3 print("Tuple 1 :",tup1);
4 print("Tuple 2 :",tup2);

ผลลพั ธ์ท่ีได้
Tuple 1 : 30
Tuple 2 : (30,)

ตวั อย่างท่ี 2.15 การกาหนดค่าใหก้ บั ตัวแปรทพั เพลิ มากกวา่ 2 ตวั ขน้ึ ไปพร้อมกนั จานวนของขอ้ มลู ทางด้าน
ขวามอื ต้องมีคา่ เทา่ กบั ตวั แปรทางดา้ นซา้ ยมอื

1 tup1, tup2 = (1, 2);
2 print(tup1)
3 print(tup2)
ผลลพั ธ์ทไ่ี ด้

1
2

จากโปรแกรมข้างต้นจะพบว่า tup1 เก็บค่า 1 และ tup2 จะเก็บค่า 2 ไว้ ซึ่งจะแตกต่างจากการ
กาหนดค่าของตัวแปรทั่วไป เพราะการกาหนดตัวแปรแบบทั่วไป tup1 และ tup2 ควรจะมีค่าเท่ากับ (1, 2)
เหมอื นกนั ลองทดสอบการกาหนดคา่ ใหม่อีกครั้งดว้ ยรูปแบบตอ่ ไปนี้

ตัวอย่างท่ี 2.16 การกาหนดค่าให้กับตวั แปรทพั เพิล มากกว่า 2 ตวั ขึ้นไปพร้อมกนั
1 tup1, tup2 = (1, 2), (3, 4);
2 print(tup1)
3 print(tup2)
4 tup1, tup2 = ((1, (2, (3, 4))), (((5, 6), 7), 8))
5 print(tup1)
6 print(tup2)

ผลลพั ธ์ท่ไี ด้
(1, 2)
(3, 4)
(1, (2, (3, 4)))
(((5, 6), 7), 8)

ไพธอนใช้ , ในการแยกค่าข้อมูลที่อยู่ทางด้านขวามือ เพ่ือกาหนดให้ตัวแปรท่ีอยู่ทางซ้ายมือ
ไ ด้ อ ย่ า ถู ก ต้ อ ง แ ล ะ ค ว ร จ า ไ ว้ ว่ า ต้ อ ง ก า ห น ด จ า น ว น ข อ ง ค่ า ข้ อ มู ล ใ ห้ เ ท่ า กั บ ตั ว แ ป ร เ ส มอ
มเิ ช่นนัน้ จะทาให้เกดิ ขอ้ ผิดพลาดขน้ึ เชน่

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 26

ตวั อยา่ งที่ 2.17 การกาหนดค่าใหก้ บั ตวั แปรทพั เพลิ
1 tup1, tup2 = (1, 2, 3)

ผลลัพธ์ทไ่ี ด้
ValueError: too many values to unpack (expected 2)

ตวั อย่างท่ี 2.18 การกาหนดตวั แปรทพั เพลิ ใหส้ ามารถเก็บคู่ของข้อมูล
1 tup1 = (("Name", "Michael"),("Age","35"),("Sex","Male"))
2 print(tup1[0])
3 print(tup1[1] )

ผลลพั ธ์ทไ่ี ด้
('Name', 'Michael')
('Age', '35')

การแก้ไขข้อมูลหลังจากประกาศตัวแปรแล้วเป็นข้อห้ามของทัพเพิล ลองทดสอบเปลี่ยนค่าข้อมูลใน
ทพั เพลิ โดยการอัพเดทขอ้ มลู ใน tup1[0] ดังตัวอยา่ ง
ตัวอยา่ งที่ 2.19 การแก้ไขคา่ ใหก้ ับตัวแปรทัพเพลิ

1 tup1 = (12, 34.56);
2 tup1[0] = 15
ผลลพั ธท์ ไี่ ด้

Traceback (most recent call last):
File "C:/Python33/testx.py", line 2, in
tup1[0] = 15

TypeError: 'tuple' object does not support item assignment

จากตัวอย่าง โปรแกรมข้างต้น จะเกิดข้อผิดพลาดข้ึน เน่ืองจาก tuples จะไม่อนุญาตให้เปลย่ี นแปลง
หรือแก้ไขข้อมูลใด ๆ หลังจากท่มี ปี ระกาศตัวแปรแล้ว สาหรับการลบตวั แปรแบบทพั เพลิ สามารถกระทาได้โดย
ใช้คาส่ัง del และตามดว้ ยชอื่ ตัวแปร

ตัวอย่างท่ี 2.20 การลบตวั แปรทพั เพลิ
1 tup = ('physics', 'chemistry', 1997, 2000);
2 print (tup);
3 del tup;
4 print ("After deleting tup : ",tup)

ผลลัพธท์ ่ีได้
('physics', 'chemistry', 1997, 2000)
Traceback (most recent call last):
File "C:/Python33/testx.py", line 4, in <module>
print ("After deleting tup : ",tup)
NameError: name 'tup' is not defined

lesson 2 โครงสรา้ งขอ้ มลู พ้ืนฐาน 27

เม่ือส่งั รันโปรแกรม ในบรรทดั ที่ 2 สามารถพมิ พ์ขอ้ มลู ของ tup ได้ แต่เมื่อใช้คาสั่งลบตวั แปรดว้ ย del
แล้ว ทาการสั่งพิมพ์ตัวแปรดังกล่าวอีกคร้ังจะเกิดข้อผิดพลาดขึ้น เพราะตัวแปรดังกล่าวถูกลบออกจาก
หนว่ ยความจาของเคร่ืองไปแล้วนัน่ เอง

ตัวดาเนินการพ้ืนฐานที่ใช้กับทัพเพิล (Basic tuples operations) สาหรับตัวแปรแบบทัพเพิลจะ
สามารถใช้สัญลักษณ์ * และ + เช่นเดียวกับลิสต์ โดย (+) ใช้สาหรับเช่ือมสมาชิกระหว่างทัพเพิลเข้าด้วยกัน
และใช้ (*) สาหรับทาซา้ ขอ้ มลู สมาชิก สาหรับตัวอยา่ งของการใชง้ านตัวดาเนินการพื้นฐานมดี งั ต่อไปนี้

สมมตุ ใิ ห้ tup1 = (1, 2, 3) และ tup2 = (4, 5, 6)

ตัวอย่างที่ 2.21
1 tup1 = (1, 2, 3); tup2 = (4, 5, 6)
2 print("length of tup1 :",len(tup1))
3 print("tup1 + tup2 :",tup1 + tup2)
4 print("tup1 * 3 :",tup1*3)
5 print("Elements in tup1 are :")
6 for x in tup1:
7 print (x)

ผลลัพธ์ที่ได้
length of tup1 : 3
tup1 + tup2 : (1, 2, 3, 4, 5, 6)
tup1 * 3 : (1, 2, 3, 1, 2, 3, 1, 2, 3)
Elements in tup1 are :
1
2
3

ตัวอยา่ งท่ี 2.22 การเขา้ ถงึ ข้อมลู ในตัวแปรชนดิ ทัพเพลิ เหมอื นกบั ตวั แปรชนิดลสิ ตด์ ังตัวอย่างต่อไปน้ี
1 tup1 = ('physics', 'chemistry', 1997, 2000);
2 tup2 = (1, 2, 3, 4, 5, 6, 7);
3 print ("tup1[0]:", tup1[0])
4 print ("tup1[-1]:", tup1[-1])
5 print ("tup2[3]:", tup2[3])
6 print ("tup2[-4]:", tup2[-4])
7 print ("tup2[1:5]:", tup2[1:5])
8 print ("tup2[::2]:", tup2[::2])

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 28

ผลลัพธท์ ่ไี ด้
tup1[0]: physics
tup1[-1]: 2000
tup2[3]: 4
tup2[-4]: 4
tup2[1:5]: (2, 3, 4, 5)
tup2[::2]: (1, 3, 5, 7

ตัวอย่างท่ี 2.23 การเปรยี บเทยี บข้อมลู ในตัวแปรทัพเพิลสามารถทาได้เหมือนสตริง โดยใชต้ ัวดาเนินการคือ <
=, >, >=, ==, !=, in และ not in ดังต่อไปนี้

1 tup1 = (1,2,3,4,5)
2 tup2 = (9,8,7,6,5)
3 tup3 = (9,8,7,6,5)
4 tup4 = (8,7)
5 print("Tup1 < Tup2 :",tup1 < tup2)
6 print("Tup1 > Tup2 :",tup1 > tup2)
7 print("Tup2 >= Tup1 :",tup2 >= tup1)
8 print("Tup2 == Tup3 :",tup2 == tup3)
9 print("8 in Tup3 :",8 in tup2)
10 print("Tup4 not in Tup2 :",tup4 not in tup2)
ผลลพั ธท์ ี่ได้

Tup1 < Tup2 : True
Tup1 > Tup2 : False
Tup2 >= Tup1 : True
Tup2 == Tup3 : True
8 in Tup3 : True
Tup4 not in Tup2 : True

การเปรยี บเทยี บในทพั เพิลจะเปน็ การเปรียบเทียบในลักษณะคา่ ต่อคา่ หรอื สมาชกิ ตอ่ สมาชิก ที ละตวั
ไปเร่ือย ๆ ในกรณีแรก Tup1 < Tup2 โปรแกรมจะเริ่มตรวจสอบคู่ของ Tup1 และ Tup2 คู่แรกก่อน ในท่ีน้ี
คือ 1 (Tup1[0]) กับ 9 (Tup2[0]) ผลที่ได้คือ 1 < 9 จริง ดังนั้นผลลัพธ์ที่ได้จะเป็นจริง (True) สาหรับตัว
ดาเนนิ การแบบ in และ not in จะเป็นการตรวจสอบสมาชิกที่อยู่ภายในทัพเพลิ ว่ามีอยู่หรือไม่ จากตัวอย่าง 8
อย่ใู น Tup3 ดังน้นั ผลลัพธ์ท่ไี ดค้ อื เปน็ จริง

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 29

การใชง้ านฟงั ก์ชันกบั Tuples

Method Description
all(iterable)
any(iterable) สง่ คา่ กลบั True ถ้าหากคา่ ทั้งหมดใน Tuple เป็นจรงิ
enumerate(iterable) สง่ คา่ กลับ True ถา้ หากมีอยา่ งน้อยหนึ่งค่าใน Tuple เปน็ จริง
ส่งค่ากลบั เป็น enumerate ออบเจ็คท่ีประกอบไปด้วย Key และ Value
len(iterable) ของ Tuple
max(iterable) ส่งค่ากลับเป็นจานวนของออบเจค็ ใน Tuple
min(iterable) ส่งค่ากลบั เป็นค่าท่มี ากท่สี ดุ ใน Tuple
sorted(iterable) สง่ คา่ กลบั เปน็ ค่าทนี่ ้อยทสี่ ดุ ใน Tuple
sum(iterable) สง่ คา่ กลับเป็น List ที่มีการเรียงขอ้ มลู แล้ว
tuple(iterable) สง่ คา่ กลบั เปน็ ผลรวมของสมาชิกใน Tuple
แปลออบเจ็คต่างๆ เชน่ List หรือ String ให้เปน็ Tuple

all(iterable) ส่งค่ากลับTrue ถา้ หากคา่ ทั้งหมดใน Tuple เป็นจริง

ตาราง all(iterable)

when Return Value

คา่ ทงั้ หมดเปน็ จริง จรงิ

ค่าทั้งหมดเป็นคา่ เท็จ เทจ็

คา่ หน่งึ เป็นจริง (คนอน่ื เป็นเทจ็ ) เทจ็

คา่ หนึ่งเปน็ เท็จ (อื่น ๆ เป็นความจริง) เท็จ

วา่ งเปล่า Iterable จริง

lesson 2 โครงสรา้ งขอ้ มลู พ้ืนฐาน 30

any(iterable) ส่งค่ากลับ True ถ้าหากมอี ยา่ งนอ้ ยหนึง่ คา่ ใน Tuple เปน็ จริง

ตาราง any(iterable)

when Return Value

ค่าทั้งหมดเปน็ จริง จริง

คา่ ทัง้ หมดเปน็ ค่าเทจ็ เทจ็

ค่าหน่ึงเป็นจรงิ (คนอน่ื เป็นเทจ็ ) จรงิ

คา่ หน่ึงเป็นเทจ็ (อืน่ ๆ เป็นความจริง) จรงิ

ว่างเปลา่ Iterable เทจ็

enumerate(iterable) ส่งคา่ กลบั เป็น enumerate ออบเจ็คทปี่ ระกอบไปด้วย Key และ
Value ของ Tuple

lesson 2 โครงสรา้ งขอ้ มลู พ้ืนฐาน 31

len(iterable) ส่งคา่ กลบั เป็นจานวนของออบเจ็คใน Tuple

max(iterable) ส่งค่ากลับเป็นค่าที่มากทสี่ ดุ ใน Tuple
min(iterable) สง่ คา่ กลบั เป็นคา่ ที่น้อยท่สี ดุ ใน Tuple

lesson 2 โครงสรา้ งขอ้ มลู พ้ืนฐาน 32

sorted(iterable) ส่งคา่ กลบั เปน็ List ท่ีมกี ารเรยี งขอ้ มูลแลว้

sum(iterable) ส่งค่ากลบั เป็นผลรวมของสมาชกิ ใน Tuple
tuple(iterable) แปลออบเจ็คต่างๆ เชน่ List หรือ String ให้เปน็ Tuple

lesson 2 โครงสรา้ งขอ้ มลู พ้ืนฐาน 33

ดิกชนั นารี (Dictionary)

ดิกชันนารีเป็นตัวแปรชนิดเปลี่ยนแปลงข้อมูลได้ตลอดเวลา (Mutable) คล้ายกับลิสต์และมีลักษณะ

การเก็บข้อมูลท่ีเหมือนกับลิสต์และทูเพิล คือสามารถเก็บข้อมูลได้หลายค่า และต่างชนิดกันได้พร้อม ๆ กัน

คุณสมบัติพิเศษที่แตกต่างของดิกชันนารีคือ จะเก็บข้อมูลเป็นคู่ คือคีย์ (Key) ซึ่งจะต้องไม่ซ้ากัน กับข้อมูล

(Value) ซ่ึงข้อมูลท้ังสองต้องมีความสัมพันธ์กัน โดยที่คีย์เปรียบเหมือนตัวช้ี (Identification) เพื่ออ้างอิงไปยัง

ข้อมูลจริงท่ีต้องการใช้งาน การประกาศตัวแปรดิกชันนารีจะใช้สญั ลักษณ์ {…} ในการประกาศตัวแปร สาหรับ

การเก็บข้อมูลคู่ของสมาชิกจะใช้สัญลักษณ์ : เช่ือมระหว่างคีย์และข้อมูล และใช้สัญลักษณ์ , ในการแยกแยะ

ระหว่างสมาชิกในดิกชันนารี สาหรับการเข้าถึงข้อมูลของดิกชันนารีจะใช้สัญลักษณ์ […] เหมือนกับลิสต์ และ

ทัพเพลิ ดงั ตวั อย่างต่อไปน้ี

ตวั อย่างท่ี 2.24 การใชต้ ัวแปรดกิ ชนั นารี

1 dict1 = {} #empty dictionary

2 dict2 = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

3 dict3 = { 'abc': 456 };

4 dict4 = { 'abc': 123, 98.6: 37 };

5 print(dict1)

6 print(dict2)

7 print(dict3)

8 print(dict4)

ผลลัพธ์ทไ่ี ด้

{}

{'Alice': '2341', 'Cecil': '3258', 'Beth': '9102'}

{'abc': 456}

{98.6: 37, 'abc': 123}

จากการประกาศตัวแปรดิกชันนารีข้างต้น ตัวแปร dict1 ประกาศให้มีสมาชิกว่าง เม่ือแสดงผลจะ
ปรากฎสัญลักษณ์ { } แสดงถงึ ไมม่ สี มาชิกใด ๆ เกบ็ อยูใ่ นตัวแปรดังกล่าว ในตัวแปร dict2 ได้ประกาศชนิดของ
ตัวแปรท่ีเก็บหลายประเภทในตัวแปรดิกชันนารีตัวเดียวกัน โดยสมาชิกตัวแรกจะมีคีย์คือ Alice เพื่อช้ีไปยัง
ขอ้ มลู จรงิ คอื 2341 คัน่ ดว้ ยเครอ่ื งหมาย : และ Cecil เป็นคียช์ ี้ไปยังข้อมูล 3258 เป็นตน้ สาหรับ dict3, dict4
นั้นเป็นการประกาศตัวแปรโดยใช้ ; ปิดท้ายคาส่ัง (เหมือนในภาษาซี) การเข้าถึงข้อมูลในดิกชันนารีสามารถ
เขา้ ถึงได้โดยใช้เครอื่ งหมาย […] ร่วมกบั ชื่อคยี ์ เหมอื นกับตวั แปรลสิ ต์ และทัพเพิล เชน่

dict Zara 7 First

ตวั อยา่ งที่ 2.25 การใช้ตวั แปรดิกชนั นารี

1 dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
2 print ("dict['Name']: ", dict['Name']);
3 print ("dict['Age']: ", dict['Age']);

lesson 2 โครงสรา้ งขอ้ มลู พ้ืนฐาน 34

ผลลัพธ์ที่ได้

dict['Name']: Zara
dict['Age']: 7

จากตวั อย่าง เมื่อการตอ้ งการเข้าถึงข้อมลู ช่ือ Zara ให้อา้ งอิงไปท่ตี วั แปรช่อื dict โดยใช้คีย์คอื Name
ร่วมกับเคร่ืองหมาย [..] ดังน้ี dict[‘name’] เมื่อผู้เขียนโปรแกรมพยายามท่ีจะอ้างอิงไปยังข้อมูลท่ีไม่มีคีย์
ปรากฎอยูใ่ นตวั แปรดิกชันนารี จะทาใหเ้ กดิ ข้อผดิ พลาดข้ึน

ในกรณีที่นักเรียนยังไม่ทราบข้อมูลที่จะใส่ลงไปในดิกชันนารีแน่ชัดในเบื้องต้น แต่วางแผนไว้ว่า จะใส่
ข้อมลู ในภายหลัง ใหก้ าหนดเปน็ ดกิ ชันนารีว่างเตรียมไว้กอ่ น แลว้ จึงปรับปรงุ ข้อมูลภายหลงั เช่น
ตวั อยา่ งท่ี 2.26 การใชต้ ัวแปรดกิ ชันนารี

1 dict1 = {};
2 print("Original dict : ",dict1)
3 dict1['Key1'] = 123;
4 print("Update data1 to dict : ",dict1)
5 dict1['Key2'] = 456;
6 print("Update data2 to dict : ",dict1)

ผลลพั ธท์ ี่ได้

Original dict : {}
Update data1 to dict : {'Key1': 123}
Update data2 to dict : {'Key1': 123, 'Key2': 456}

จากตัวอย่างโปรแกรม เป็นการปรับปรุงข้อมูลในดิกชันนารีโดยการเพิ่มคู่ของคีย์และข้อมูลให้

ดกิ ชนั นารีเขา้ ไปได้เรื่อย ๆ มีข้อแมว้ ่าตอ้ งมกี ารประกาศตวั แปรดิกชนั นารีแบบวา่ งเปลา่ ไวก้ ่อน คือ dict1 = { }

ต่อจากน้ันจึงสามารถเพิ่มข้อมูลได้ ในการใช้งานดิกชันนารีข้ันสูงน้ัน นักเรียนสามารถสร้างคีย์ และข้อมูล ได้

หลายรูปแบบ เช่น คีย์หนึ่งค่ากับข้อมูลหน่งึ ค่า คีย์หน่ึงค่ากับข้อมูลหลายค่า คีย์หลายค่ากับข้อมูลหนง่ึ ค่า และ

คียห์ ลายคา่ กบั ขอ้ มลู หลายคา่ ดงั ตัวอย่าง

ตวั อยา่ งท่ี 2.27 การใช้ตวั แปรดกิ ชนั นารี

1 numbers = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9); # tuples

2 chars = ('a', 'b', 'c', 'd', 'e', 'f'); # tuples

3 DummyDict = {}; # Empty dictionary

4 DummyDict['001'] = 'John'; #One to One Dict

5 print("One to One Dictionary :",DummyDict)

6 DummyDict['001'] = numbers; #One to Many Dict

7 print("One to Many Dictionary :",DummyDict)

8 DummyDict = {};

9 DummyDict[numbers] = 'Python'; #Many to One Dict

10 print("Many to One Dictionary :",DummyDict);

11 DummyDict[numbers] = chars; #Many to Many Dict

12 print("Many to Many Dictionary :",DummyDict)

lesson 2 โครงสรา้ งขอ้ มลู พ้ืนฐาน 35

ผลลัพธ์ทไ่ี ด้

One to One Dictionary:{'001': 'John'}
One to Many Dictionary:{'001': (0,1,2,3,4,5,6,7,8,9)} Many to One
Dictionary:{(0,1,2,3,4,5,6,7,8,9): 'Python'}
Many to Many Dictionary : {(0,1,2,3,4,5,6,7,8,9): ('a', 'b', 'c', 'd', 'e', 'f')}

การแก้ไขข้อมูลในดิกชันนารีสามารถทาได้โดยการอ้างถึงด้วยคีย์ และกาหนดค่าโดยใชเ้ ครอื่ งหมาย ‘=’ เชน่
dict[‘Key1’] = ‘xyz’ (กาหนดให้Key1 ชีข้ ้อมลู xyz) เปน็ ตน้ แตถ่ า้ ไมม่ คี ีย์อยู่ในตวั แปรดกิ ชันนารที ป่ี ระกาศไว้
ไพทอนถือวา่ เปน็ การสร้างคขู่ องคยี ์และข้อมูลใหม่ ตวั อยา่ งเชน่ dict1 มขี อ้ มูลดงั นี้

dict1 = {'Key1': 123}
เม่ือทาการเพิ่มคู่ของคีย์และข้อมูลเข้าไป (Key2: 345) โดยท่ี dict1 ไม่มีข้อมูลชุดนี้อยู่ก่อนหน้า
จะทาให้ dict1 มีข้อมลู ดังนี้

dict1['Key2'] = 456
dict1 {'Key2': 456, 'Key1': 123}

การลบข้อมูลออกจากดิกชันนารีทาได้ใน 3 รูปแบบคือ ลบเฉพาะสมาชิกท่ีต้องการ

เคลียร์ค่าข้อมูลทั้งหมด หรือลบตัวแปรดิกชันนารีออกจากหน่วยความจาโดยใช้คาส่ัง del

สาหรับการลบข้อมูลเฉพาะสมาชิกท่ีต้องการทาได้โดยใช้รูปแบบคาสั่ง del ชื่อตัวแปร[คีย์]

การเคลียร์ข้อมูลมีรูปแบบคือ ช่ือตัวแปร.clear() และการลบตัวแปรดิกชันนารีมีรูปแบบ del ช่ือตัวแปร

ดังตัวอย่าง

ตวั อยา่ งท่ี 2.28 การใชต้ ัวแปรดิกชนั นารี

1 dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

2 print("Original dict :",dict);

3 del dict['Name']; # remove entry with key 'Name'

4 print("After removed 'Name' :",dict);

5 dict.clear(); # remove all entries in dict

6 print("After cleared all :",dict);

7 del dict ; # delete entire dictionary

8 print("After deleted form memory :",dict);

ผลลัพธท์ ีไ่ ด้

Original dict : {'Class': 'First', 'Name': 'Zara', 'Age': 7}

After removed 'Name' : {'Class': 'First', 'Age': 7}

After cleared all : {}

After deleted form memory : <class 'dict'>

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 36

คุณสมบัตขิ องดกิ ชันนารีทีค่ วรต้องจดจา
ประการแรก : ตามทฤษฏีแล้ว คีย์ในดิกชันนารีจะต้องมีค่าไม่ซ้ากันเลย แต่ในสถานะการณ์จริง
ไพทอนยอมให้สามารถประกาศคีย์ที่เหมือนกันในดิกชันนารีได้ (ไพทอนไม่ไดต้ รวจสอบขณะประกาศ ขอ้ มูลใน
ตัวแปร) ส่งผลให้การอ้างอิงข้อมูลที่มีคีย์เหมือนกันเกิดข้อผิดพลาดคือ ไพทอนจะดึงข้อมูล รายการสุดท้ายท่ี
เจอในดิกชันนารีออกมาแสดงผล โดยขอ้ มูลที่ซา้ กันในลาดบั กอ่ นหน้าจะไม่ถูกนามาใช้ งานเลย ยกตวั อย่างเชน่
ตวั อย่างท่ี 2.29 การใช้ตวั แปรดิกชนั นารี

1 dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'};
2 print ("dict['Name']: ", dict['Name']);

ผลลัพธท์ ี่ได้

dict['Name']: Manni

จากตวั อยา่ งโปรแกรม แสดงให้เห็นวา่ มีคีย์เหมือนกัน 2 ตาแหนง่ ในดิกชันนารี คอื Name เม่อื ทาการ
เรียกใช้งานข้อมูล ปรากฎว่าโปรแกรมจะนาข้อมูลหลังสุดของดกิ ชันนารีมาแสดงผลเสมอ ส่งผลให้คู่ของขอ้ มูล
'Name':'Zara' จะไมถ่ ูกนามาประมวลผลเลย

ประการทีส่ อง : โดยปกตคิ ยี ์จะต้องเป็นค่าท่ีไมค่ วรเปลี่ยนแปลง เพราะเปน็ ค่าท่ใี ช้อา้ งอิงถึงข้อมูลจริง
ตัวอย่างในชีวิตประจาวัน เช่น นักศึกษาต้องมีหมายเลข ID ของนักศึกษา และไม่ควรเปล่ียน ID ไปเรื่อย ๆ
ฉันใดก็ฉันนั้น คีย์ไม่ควรเปลี่ยนแปลงบอ่ ยเชน่ เดียวกัน แม้ว่าเราสามารถใช้ข้อมูลหลายประเภทเป็นคียไ์ ด้ เช่น
สตริง ตัวเลข หรือทัพเพิล แต่ไพท อนไม่แนะนาให้ใช้คีย์ในลักษณะที่คีย์ ถูกครอบด้วย […]
เพราะจะทาให้ไพทอนเกดิ ความสบั สนในการอ้างถงึ ข้อมูล และเกิดความผิดพลาด เช่น
ตัวอย่างที่ 2.30 การใชต้ วั แปรดิกชนั นารี

1 dict = {['Name']: 'Zara', 'Age': 7};
2 print ("dict['Name']: ", dict['Name']);

ผลลัพธ์ที่ได้

Traceback (most recent call last):
File "C:/Python33/testx.py", line 1, in

dict = {['Name']: 'Zara', 'Age': 7};
TypeError: unhashable type: 'list'

แต่ถ้าจาเป็นต้องการใช้ […] เปน็ คีย์จริง ๆ สามารถทาได้โดยใชเ้ ครื่องหมาย ' ' ในลักษณะดงั นี้ '
[KeyName]' แทน เชน่
ตวั อยา่ งที่ 2.31 การใช้ตวั แปรดกิ ชนั นารี

1 dict = {'[Name]': 'Zara', 'Age': 7};
2 print ("dict['[Name]']: ", dict['[Name]']);

ผลลัพธ์ทไี่ ด้

dict['[Name]']: Zara

lesson 2 โครงสรา้ งขอ้ มลู พ้ืนฐาน 37

การใช้งานเมธอดของ Dictionary

Dictionary มีเมธอดและ ฟังก์ชัน้ ที่ใหส้ ามารถทางานกับมันไดง้ า่ ยขึ้น โดยส่วนมากแล้วมกั จะเป็นเมธ
อดในการอัพเดทและรับค่าข้อมูลภายใน Dictionary

Method Description

clear() ลบข้อมลู ทั้งหมดภายใน Dictionary
copy() คดั ลอก Dictionary ทง้ั หมดไปยงั อันใหม่
key() สง่ ค่ากลบั เป็น List ของ Key ท้ังหมดใน Dictionary
item() สง่ ค่ากลบั เป็นออบเจ็คของ Key และ Value

Clear() ลบขอ้ มลู ท้ังหมดภายใน Dictionary

copy() คดั ลอก Dictionary ทัง้ หมดไปยังอนั ใหม่

lesson 2 โครงสรา้ งขอ้ มลู พ้ืนฐาน 38

key() ส่งค่ากลบั เปน็ List ของ Key ท้งั หมดใน Dictionary
item() สง่ คา่ กลบั เปน็ ออบเจค็ ของ Key และ Value

lesson 2 โครงสรา้ งขอ้ มลู พ้ืนฐาน 39

การใช้งานฟังก์ชันกบั Dictionary

Function Description

len() ลบขอ้ มูลทั้งหมดภายใน Dictionary
sorted() คดั ลอก Dictionary ทง้ั หมดไปยังอนั ใหม่

len() ลบข้อมูลทง้ั หมดภายใน Dictionary

sorted() คัดลอก Dictionary ท้ังหมดไปยงั อนั ใหม่

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 40

เซต (Sets)

เซต (Sets) เซต ในทางคณิตศาสตร์เป็นคาท่ีใช้บ่งบอกถึงกลุ่มของส่ิงต่าง ๆ ว่า สิ่งใดอยู่ในกลุ่ม สิ่งใด
ไมอ่ ยูใ่ นกลุ่ม เชน่ เซตสระในภาษาอังกฤษ หมายถึง กลมุ่ ของสระอังกฤษ a, e, i, o และ u เซตของจานวนนับ
ที่น้อยกว่า 10 หมายถึง กลุ่มตัวเลข 1, 2, 3, 4, 5, 6, 7, 8 และ 9 เป็นต้น สิ่งที่อยู่ในเช็ตเรียกว่า สมาชิก
(Element หรือ Members) คุณสมบัติของเซตคือ สมาชิกไม่จาเป็นต้องเรียงลาดับ และสมาชิกต้องไม่ซ้ากัน
สาหรับการดาเนินงานกับเซตพ้ืนฐานประกอบไปด้วย การทดสอบความเป็นสมาชิก การขจัดสมาชิกที่ซ้ากัน
ทั้งหมดในเซต, union, intersection, difference และ symmetric difference เป็นต้น ในไพทอนจะใช้
สญั ลกั ษณ์ {…} สาหรบั สรา้ งตัวแปรชนดิ เซต และใช้ set() ในการกาหนดว่าเป็นเซตวา่ ง ดงั ตัวอย่าง ต่อไปนี้
ตวั อยา่ งท่ี 2.32 การประกาศตัวแปรเซตและกาหนดให้เปน็ เซตวา่ ง

1 setx = set(); # empty set
2 print(setx)
3 print(type(setx));
ผลลัพธท์ ่ไี ด้

set()
<class 'set'>
จากตัวอย่าง เป็นการสร้างตัวแปร setx ให้เป็นเซตว่าง เม่ือเรียกคาสั่ง type(setx) จะแสดง
ประเภทของตัวแปร setx คือ set

ตัวอยา่ งท่ี 2.33 การประกาศตัวแปรเซตและการกาหนดคา่ ให้กับตัวแปร
1 basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
2 print(basket) # show that duplicates have been removed

ผลลพั ธท์ ี่ได้
{'banana', 'orange', 'apple', 'pear'}

จากโปรแกรมตัวอย่าง เป็นการประกาศตัวแปรชนิดเซต basket พร้อมกาหนดค่าของสมาชิกเป็น
apple, orange, pear, banana เ ห็ น ไ ด้ ว่ า ส ม า ชิ ก ท่ี ก า ห น ด ล ง ไ ป ใ น เ ซ ต จ ะ มี ค่ า ท่ี ซ้ า กั น
แต่เม่ือสั่งรันโปรแกรมผลลัพธ์ที่ได้คือ เซตจะทาการกาจัดสมาชิกที่ซ้ากันออก จึงเหลือแค่ 4 ตัวเท่าน้ัน
การสร้างเซตในไพทอนสามารถสร้างจากลสิ ตแ์ ละทัพเพิลได้ โดยการประกาศตัวแปร และข้อมลู ชนิดลิสต์ก่อน
แลว้ จงึ เรียกฟงั ชนั เพอ่ื เปลีย่ นค่าตัวแปรจากชนิดลสิ ตม์ าเป็นเซต โดยใชฟ้ งั ชนั set() ดงั นี้

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 41

ตวั อยา่ งที่ 2.34 การใชต้ ัวแปรเซต
1 list_x = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
2 print(type(list_x))
3 setList = set(list_x)
4 print(setList)
5 print(type(setList))
6 tuple_x = ("hello", "world", "of", "words", "of", "world")
7 print(type(tuple_x))
8 setTuple = set(tuple_x)
9 print(setTuple)
10 print(type(setTuple))

ผลลัพธท์ ่ไี ด้
<class 'list'>
{'orange', 'apple', 'banana', 'pear'}
<class 'set'>
<class 'tuple'>
{'words', 'hello', 'world', 'of'}
<class 'set'>

เราสามารถประกาศเซตจากตัวอักษร หรือตัวเลขท่ีไม่ซ้ากันได้ในครั้งเดียว โดยใช้รูปแบบคือ
set('ตัวเลขหรอื ตัวอกั ษร') ดังน้ี
ตัวอย่างท่ี 2.35 การใช้ตวั แปรเซต

1 setA = set('abracadabra')
2 setB = set('alacazam')
3 setC = set('112768730893488746249')
4 print(setA)
5 print(setB)
6 print(setC)
ผลลพั ธท์ ่ไี ด้

{'d', 'r', 'a', 'b', 'c'}
{'m', 'a', 'l', 'z', 'c'}
{'3', '7', '9', '6', '4', '2', '1', '0', '8'}

การตรวจสอบข้อมลู ในเซต ทาได้โดยใชค้ าสง่ั in ดังนี้ เมือ่ setA มคี ่าเทา่ กับ {'b', 'r', 'a', 'd', 'c'}
'a' in setA
ผลลพั ธท์ ี่ได้
True

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 42

'z' in setA
ผลลัพธท์ ีไ่ ด้
False

จากตัวอยา่ งโปรแกรมขา้ งต้น แสดงให้เหน็ วา่ 'a' เป็นสมาชิกทีอ่ ยู่ใน setA และ 'z' ไม่เป็น สมาชิกใน setA
ไพทอนเตรียมคาสั่งไว้ให้ผู้ใช้งานสามารถดาเนินการเกี่ยวกับเซต เช่น union (|), intersection (&),

difference (-), symmetric difference (^) ไว้อย่างครบถ้วน ดงั นี้

กาหนดให้ S1 = {1, 2, 3, 5, 8, 13} และ S2 = {2, 3, 5, 7, 11, 13} ยเู นยี น (Union) ของเซต
S1 และ S2 คือเซตทป่ี ระกอบด้วยสมาชกิ ของเซต S1 หรือ S2 ใชส้ ญั ลกั ษณ์ '|' ดังตัวอย่าง
ตวั อยา่ งท่ี 2.36 การใช้ตัวแปรเซต

1 S1=set((1,1,2,3,5,8,13))
2 S2=set((2,3,5,7,11,13))
3 print("Set S1 :",S1)
4 print("Set S2 :",S2)
5 print("Set S1 | S2 :",S1|S2)
ผลลพั ธ์ท่ีได้

Set S1 : {1, 2, 3, 5, 8, 13}
Set S2 : {2, 3, 5, 7, 11, 13}
Set S1 | S2 : {1, 2, 3, 5, 7, 8, 11, 13}

อินเตอร์เซคชัน (Intersection) ของเซต S1 และ S2 คือ เซตที่ประกอบด้วยสมาชิกของเซต S1 และ
S2 ใชส้ ญั ลกั ษณ์ '&' ดงั รูป

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 43

ตัวอย่างท่ี 2.37 การใชต้ วั แปรเซต
1 print("Set S1 :",S1)
2 print("Set S2 :",S2)
3 print("Set S1 & S2 :",S1&S2)

ผลลพั ธท์ ีไ่ ด้
Set S1 : {1, 2, 3, 5, 8, 13}
Set S2 : {2, 3, 5, 7, 11, 13}
Set S1 & S2 : {13, 2, 3, 5}

ผลต่าง (Difference) ของเซต S1 และ S2 คอื เซตทป่ี ระกอบด้วยสมาชิกทีเ่ ปน็ สมาชิกของเซต S1
แต่ไม่เปน็ สมาชกิ ของเซต S2 ใชส้ ญั ลกั ษณ์ '-' ดงั รูป

ตัวอยา่ งที่ 2.38 การใช้ตวั แปรเซต
1 print("Set S1 :",S1)
2 print("Set S2 :",S2)
3 print("Set S1 - S2 :",S1-S2)

ผลลัพธท์ ่ีได้
Set S1 : {1, 2, 3, 5, 8, 13}
Set S2 : {2, 3, 5, 7, 11, 13}

Set S1 - S2 : {8, 1}

ผลต่างสมมาตร (Symmetric difference) ของเซต S1 และ S2 คือเซตท่ีประกอบด้วยสมาชิกท่ีอยู่ในเซต S1
หรือเซต S2 แต่ไม่ใชส่ มาชิกที่อยู่ทั้งใน S1 และ S2 ใช้สัญลักษณ์ '^' ดังรูป

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 44

ตัวอยา่ งท่ี 2.39 การใช้ตวั แปรเซต
1 print("Set S1 :",S1)
2 print("Set S2 :",S2)
3 print("Set S1 ^ S2 :",S1^S2)

ผลลัพธ์ที่ได้
Set S1 : {1, 2, 3, 5, 8, 13}
Set S2 : {2, 3, 5, 7, 11, 13}
Set S1 ^ S2 : {1, 7, 8, 11}

ตัวเนินการท่ใี ช้เปรียบเทียบสาหรบั เซต (Set comparison operators)
สาหรับตัวดาเนินการที่ใช้กับเซตประกอบไปด้วย <, <=, >, >=, ==, !=, in , not in
ในหัวข้อน้ีจะอธิบายการใช้งานกับตัวดาเนินการพื้นฐาน เพ่ือให้เข้าใจการทางานของเซตในเบ้ืองต้น
ตัวดาเนนิ การที่ใช้บอ่ ย ๆ คือ inและ not in ความหมายคอื เปน็ สมาชกิ หรอื ไม่เปน็ สมาชกิ ตวั อย่างเช่น

ตัวอยา่ งท่ี 2.40 การใชต้ ัวแปรเซต
1 S1 = {1, 2, 3, 5, 8, 13};
2 S2 = {2, 3, 5, 7, 11, 13};
3 S3 = {3, 5, 8}
4 print(3 in S1)
5 print(7 in S1)

ผลลพั ธ์ท่ไี ด้
True
False

เคร่ืองหมาย <, <=, >, >= ใช้สาหรับการเปรียบเทียบ 2 เซตใด ๆ ถึงความเป็น superset และ
subset เช่น ถ้า S1 เป็น subset ของ S2 ก็ต่อเม่ือสมาชิกทุกตัวใน S1 อยู่ใน S2 ใช้ตัวดาเนินการ <=, S1
เป็น proper subset ของ S2 ใช้ตวั ดาเนินการ < เปน็ ต้น ดังตัวอย่างต่อไปน้ี
ตัวอย่างท่ี 2.41 การใช้ตัวแปรเซต

1 S1 = {1, 2, 3, 5, 8, 13};
2 S2 = {2, 3, 5, 7, 11, 13};
3 S3 = {3, 5, 8}
4 print(S1 < S2)
5 print(S1 >= S3)
ผลลัพธท์ ไ่ี ด้

False
True

S1 < S2 เป็นเทจ็ เพราะสมาชกิ ใน S1 และ S2 มีคา่ เท่ากัน
S1 >= S3 เป็นจรงิ เพราะสมาชิกใน S1 มากกว่า S3

lesson 2 โครงสรา้ งขอ้ มลู พ้ืนฐาน 45

การใชง้ านเมธอดของ Set Description

Method ลบขอ้ มูลท้ังหมดภายใน set
clear() คดั ลอก set ทัง้ หมดไปยังอันใหม่
copy() แสดงความคา่ ทแี่ ตกตา่ งของชุดขอ้ มูลต้ังแต่สองชดุ ขน้ึ ไปเป็นชดุ ใหม่
difference() สง่ คืนคา่ การ uniun ของขอ้ มูลสองชดุ เป็นชุดใหม่
intersection() ส่งคืนคา่ การรวมกันของชุดข้อมลู ลงในชดุ ใหม่
union()

clear() ลบข้อมูลทง้ั หมดภายใน set

copy() คดั ลอก set ท้ังหมดไปยังอันใหม่

difference() แสดงความค่าทีแ่ ตกตา่ งของชดุ ข้อมลู ตง้ั แตส่ องชดุ ขึ้นไปเปน็ ชดุ ใหม่

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 46

intersection() สง่ คืนคา่ การ intersection ของข้อมูลสองชดุ เปน็ ชดุ ใหม่
union() สง่ คืนคา่ การรวมกนั ของชุดข้อมลู ลงในชุดใหม่

การใชง้ านฟังก์ชันกับ Set Description

Function สง่ คนื ความยาว (จานวนรายการ) ในชุด
len() ส่งคืนคา่ ท่ีมากที่สุดในชุด
max() สง่ คืนคา่ ทนี่ ้อยท่ีสุดในชดุ
min() สง่ กลบั รายการทเี่ รยี งลาดับใหมจ่ ากชดุ ข้อมลู ใน set (ไม่ได้จัดเรยี งชดุ
sorted() ตวั เอง)
สง่ คา่ ผลรวมสมาชกิ ใน set
sum()

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 47

len() สง่ คนื ความยาว (จานวนรายการ) ในชุด

max() สง่ คืนคา่ ที่มากที่สดุ ในชดุ
min() ส่งคนื ค่าท่ีน้อยทส่ี ุดในชุด
sorted() ส่งกลบั รายการทเ่ี รยี งลาดับใหม่จากชุดขอ้ มูลใน set (ไมไ่ ดจ้ ัดเรียงชุดตัวเอง)
Sum() สง่ คา่ ผลรวมสมาชิกใน set

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 48

สรปุ การใชง้ านข้อมลู พ้นื ฐานและขอ้ มลู เชิงประกอบ

1.1 การสร้าง
ตวั แปรชนิดสตริง  S = 'Hello World' หรอื S = "Hello World"
ตวั แปรชนดิ ลิสต์  L = [1, 2, 3, 4, 5], L= ['Yes', 'No', 'OK'], L = [1, 0.5, 'True']
ตวั แปรชนิดดกิ ชันนารี  D = {1:'One', 1:'Two', 1:'Three'}, D = {'key1':1, 'key2':2}
ตัวแปรชนดิ ทพั เพิล  T = (1, 2, 3, 4), T = (1, 0.5, 'True')
ตวั แปรชนดิ เซต็  Z = {1, 2, 3, 4}, T = {1, 0.5, 'True'}

1.2 การเขา้ ถึงสมาขกิ
สตริง  S = 'Hello World' แล้ว S[0]  'H', S[-1]  'd'
ลสิ ต์  L = [1, 2, 3, 4, 5] แลว้ L[0]  1, S[-1]  5
ดกิ ชนั นารี  D = {'key1':1, 'key2':2} แล้ว L['key1']  1
ทพั เพลิ  T = (1, 2, 3, 4) แลว้ T[0]  1, S[-1]  4
เซ็ต  Z = {1, 2, 3, 4} แลว้ for z in Z: print(z)  พิมพเ์ ลข 1 ถึง 4

1.3 การตรวจสอบความเปน็ สมาชิก
สตรงิ  S = 'Hello World' แล้ว 'H' in S  True, 'X' in S  False
ลิสต์L = [1, 2, 3, 4, 5] แล้ว 1 in L  True, 9 in S False
ดิกชนั นารี  D = {'key1':1, 'key2':2} แลว้ 'key1' in D  True
ทพั เพลิ  T = (1, 2, 3, 4) แลว้ 1 in T  True, 9 in T  False
เซ็ต  Z = {1, 2, 3, 4} แล้ว 1 in Z  True, 9 in Z  False

1.4 การลบสมาชกิ
สตรงิ  S = 'Hello World' แล้ว S = S[:3-1] + S[6:]  'HeWorld'
ลสิ ต์  L = [1, 2, 3, 4, 5] แล้ว del L[0]  [2, 3, 4, 5]
ดิกชันนารี  D = {'key1':1, 'key2':2} แล้ว del D['key1']  {'key2':2}
ทพั เพลิ  ไมส่ นับสนุนการลบสมาชิกต้องแปลงเป็นลสิ ต์กอ่ นแลว้ จงึ ลบ
เซ็ต  Z = {1, 2, 3, 4} แลว้ Z.remove(1)  {2, 3, 4}

1.5 การแก้ไขหรือปรับปรุงสมาชกิ
สตรงิ  S = 'Hello World' แล้ว S = S[:3-1] + 'XX' + S[6:]  'HeXXWorld'
ลสิ ต์  L = [1, 2, 3, 4, 5] แลว้ L[0] = 0  [0, 2, 3, 4, 5]
ดิกชันนารี  D = {'key1':1, 'key2':2} แลว้ D['key1'] = 9  {'key1':9, 'key2':2}
ทพั เพลิ  ไม่สนับสนุนการแกไ้ ขสมาชิกต้องแปลงเป็นลสิ ต์ก่อนแลว้ จงึ แกไ้ ข
เซ็ต  ไมส่ นับสนนุ การแก้ไขสมาชิก

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 49

1.6 การเพ่ิมสมาชิกใหม่
สตริง  S = 'Hello World' แล้ว S = 'X' + S + 'X'  'XHello WorldX'
ลิสต์  L = [1, 2, 3, 4, 5] แลว้ L.append(6)  [1, 2, 3, 4, 5, 6]
ดกิ ชนั นารี  D = {'key1':1, 'key2':2} แล้ว D['key3'] = 3  {'key1':1, 'key2':2, 'key3':3}
ทพั เพิล  ไม่สนับสนุนการเพม่ิ สมาชิกใหม่ต้องแปลงเปน็ ลิสตก์ อ่ นแลว้ จงึ เพ่ิม
เซ็ต  Z = {1, 2, 3, 4} แลว้ Z.add(5)  {1, 2, 3, 4, 5}

1.7 การลบสมาชิกหลายตัวแบบต่อเนอ่ื ง
สตริง  S = 'Hello World' แลว้ S = S[:2] + S[7:]  'Heorld'
ลิสต์  L = [1, 2, 3, 4, 5] แลว้ del L[2:4]  [1, 2, 5]
ดกิ ชันนารี  D = {'key1':1, 'key2':2} แล้ว D.clear()  { }
ทพั เพลิ  ไม่สนบั สนนุ การลบสมาชิกใหม่ตอ้ งแปลงเป็นลสิ ต์กอ่ นแลว้ จึงลบ
เซ็ต  Z = {1, 2, 3, 4} แลว้ Z.clear()  set()

1.8 การแกไ้ ขหรอื ปรบั ปรงุ สมาชกิ หลายตวั แบบตอ่ เนอื่ ง
สตรงิ  S = 'Hello World' แลว้ S = S[:3-1] + 'XX' + S[6:]  'HeXXWorld'
ลิสต์  L = [1, 2, 3, 4, 5] แลว้ L[2:4] = [0, 0]  [1, 2, 0, 0, 5]
ดกิ ชันนารี  ไมส่ นับสนุนการแก้ไข
ทัพเพิล  ไม่สนบั สนนุ การแกไ้ ขสมาชกิ ตอ้ งแปลงเป็นลิสตก์ อ่ นแลว้ จงึ แกไ้ ข
เซ็ต  ไม่สนับสนุนการแกไ้ ข

1.9 การเพมิ่ สมาชกิ หลายตัวแบบต่อเนอื่ ง
สตรงิ  S = 'Hello World' แล้ว S = S + ' Python'  'Hello World Python'
ลิสต์  L = [1, 2, 3, 4, 5] แลว้ L.extend([6, 7]) = [0, 0]  [1, 2, 3, 4, 5, 6, 7]
ดิกชันนารี  D = {'key1':1, 'key2':2} แล้ว D.update({'key3':3, 'key4':4})  {'key1': 1,'key2':

2, 'key3': 3, 'key4': 4}
ทพั เพิล  ไม่สนับสนุนการเพมิ่ สมาชกิ ต้องแปลงเป็นลสิ ต์ก่อนแล้วจึงเพม่ิ
เซ็ต  Z = {1, 2, 3, 4} แลว้ Z.update({5, 6})  {1, 2, 3, 4, 5, 6}

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 50

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 51

lesson 2 โครงสรา้ งขอ้ มลู พื้นฐาน 52


Click to View FlipBook Version