เรียนเขียนโปรแกรมง่ายๆกับ Expert Programming Tutor วันนี้เราจะมาเข้าสู่บทLists
มีชนิดข้อมูลการรวบรวม 4 ชนิดในภาษาการเขียนโปรแกรม Python
1.List คือชุดที่สั่งซื้อและเปลี่ยนแปลงได้ อนุญาตสมาชิกที่ซ้ำกัน
2.Tuple เป็นคอลเลคชันที่เรียงลำดับและไม่สามารถเปลี่ยนแปลงได้ อนุญาตสมาชิกที่ซ้ำกัน
3.Set เป็นคอลเล็กชันที่ไม่ได้เรียงลำดับและไม่มีสมาชิกที่ซ้ำกัน
4.Dictionary คือชุดสะสมซึ่งไม่เรียงลำดับเปลี่ยนแปลงและไม่มีสมาชิกที่ซ้ำกัน
เมื่อเลือกประเภทการรวบรวมจะมีประโยชน์ในการทำความเข้าใจคุณสมบัติของประเภทนั้น การเลือกประเภทที่เหมาะสมสำหรับชุดข้อมูลเฉพาะอาจหมายถึงการเก็บรักษาความหมายและอาจหมายถึงการเพิ่มประสิทธิภาพหรือความปลอดภัย
ตัวอย่าง
thislist = ["apple", "banana", "cherry"] |
ผลลัพธ์
['apple', 'banana', 'cherry'] |
การเข้าถึงข้อมูลประเภทลิสต์ List
เราสามารถเข้าถึงข้อมูล (Member) แต่ละตัวใน List ได้โดยการอ้างอิงหมายเลขอินเด็กซ์ไว้ภายในเครื่องหมาย [] square brackets โดยหมายเลขอินเด็กซ์จะเริ่มต้นที่ 0
ตัวอย่าง
การเข้าถึงข้อมูล (Member) ใน List
thislist = ["apple", "banana", "cherry"] |
ผลลัพธ์
banana |
การระบุหมายเลขอินเด็กซ์ด้วยค่าตัวเลขที่ติดลบ หมายถึงการเริ่มต้นจากจุดสิ้นสุด -1 หมายถึงlistสุดท้าย -2 หมายถึงlistสุดท้ายที่สองเป็นต้น
ตัวอย่าง
thislist = ["apple", "banana", "cherry"] |
ผลลัพธ์
banana |
ช่วงของดัชนี
นักเรียนสามารถระบุช่วงของดัชนีได้โดยระบุตำแหน่งที่จะเริ่มและตำแหน่งที่จะสิ้นสุดช่วง เมื่อระบุช่วงค่าส่งคืนจะเป็นlistใหม่พร้อมListที่ระบุ
ตัวอย่าง
บรรทัดที่ 1 สร้างข้อมูลแบบ List ขึ้นมาใช้งาน
บรรทัดที่ 2 สั่งแสดงค่าของข้อมูลในลิสต์ โดยระบุอินเด็กซ์เป็น [3:6]
mylist = ["Swift", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] |
ผลลัพธ์
['Kotlin', 'HTML', 'Objective-C'] |
จากโค้ดตัวอย่าง จะได้ข้อมูลที่มีอินเด็กซ์เป็น 3 นั่นคือข้อมูลลำดับที่ 4 (เพราะนับเริ่มจาก 0) เป็นตัวแรก และข้อมูลลำดับที่ 6-1 นั่นคือข้อมูลที่มีอินเด็กซ์เป็น 5 เป็นตัวสุดท้าย
หมายเหตุ: การหาจะเริ่มที่ดัชนี 2 (รวมอยู่) และสิ้นสุดที่ดัชนี 5 (ไม่รวม)
โปรดจำไว้ว่าlistแรกมีดัชนี 0 เมื่อปล่อยออกจากค่าเริ่มต้นช่วงจะเริ่มต้นที่listแรก
ตัวอย่าง
ตัวอย่างนี้ส่งคืนไอเท็มตั้งแต่ต้นถึง "orange":
thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"] |
ผลลัพธ์
['apple', 'banana', 'cherry', 'orange'] |
เมื่อปล่อยให้ค่าสิ้นสุดช่วงจะไปยังจุดสิ้นสุดของlist
ตัวอย่าง
ตัวอย่างนี้ส่งคืนไอเท็มจาก "cherry" และสิ้นสุด
thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"] #This will return the items from index 2 to the end. |
ผลลัพธ์
['cherry', 'orange', 'kiwi', 'melon', 'mango'] |
การเข้าถึงข้อมูล List แบบกำหนดช่วงข้อมูล เราสามารถระบุเป็นค่าตัวเลขติดลบได้เช่นกัน
ตัวอย่าง
thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"] #Negative indexing means starting from the end of the list. |
ผลลัพธ์
['orange', 'kiwi', 'melon'] |
การเปลี่ยนแปลงข้อมูลในลิสต์ List
ในการเปลี่ยนค่าของlistเฉพาะให้อ้างอิงกับหมายเลขดัชนี
ตัวอย่าง
เปลี่ยนlistที่สอง
thislist = ["apple", "banana", "cherry"] |
ผลลัพธ์
['apple', 'blackcurrant', 'cherry'] |
การใช้ Loop เข้าถึงข้อมูลใน List
เราสามารถใช้loop for เข้าถึงข้อมูลใน List ได้
ตัวอย่าง
mylist = ["Swift", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] |
จากโค้ดด้านบน เป็นการใช้loop for เข้าถึงสมาชิกใน List แล้วแสดงผลออกมาทีละลำดับ
ผลลัพธ์
wift |
การตรวจสอบข้อมูลในลิสต์ List
ในการพิจารณาว่ามี list ที่ระบุอยู่ใน list หรือไม่ โดยใช้คีย์เวิร์ด in
ตัวอย่าง
thislist = ["apple", "banana", "cherry"] |
บรรทัดที่ 2 ใช้คีย์เวิร์ด in ตรวจสอบว่ามีข้อมูลตามที่เราระบุอยู่ในลิสต์หรือไม่
ผลลัพธ์
Yes, 'apple' is in the fruits list |
การตรวจสอบจำนวนสมาชิกในลิสต์ List
ในการพิจารณาว่ามี list กี่ list ให้ใช้ฟังก์ชัน len ()
ตัวอย่าง
thislist = ["apple", "banana", "cherry"] |
ฟังก์ชัน len() จะคืนค่ากลับมาเป็นจำนวนสมาชิกทั้งหมดในลิสต์
ผลลัพธ์
3 |
การเพิ่มสมาชิกใน List
ในการเพิ่มlist ในตอนท้ายของlistให้ใช้วิธีการ append ()
ตัวอย่าง
ใช้วิธีการ append() วิธีการต่อท้ายlist
thislist = ["apple", "banana", "cherry"] |
ผลลัพธ์
['apple', 'banana', 'cherry', 'orange'] |
ในการเพิ่ม list ที่ดัชนีที่ระบุให้ใช้เมธอด insert ()
ตัวอย่าง
แทรกlistเป็นตำแหน่งที่สอง
thislist = ["apple", "banana", "cherry"] |
ผลลัพธ์
['apple', 'orange', 'banana', 'cherry'] |
การลบข้อมูลออกจากลิสต์ List
- ลบข้อมูลด้วยเมธอด remove()
เราสามารถลบข้อมูลออกจากลิสต์โดยใช้เมธอด remove() โดยมีวิธีใช้งานดังนี้
ตัวอย่าง
thislist = ["apple", "banana", "cherry"] |
ผลลัพธ์
['apple', 'cherry'] |
- ลบข้อมูลโดยใช้เมธอด pop()
ตัวอย่าง
การใช้เมธอด pop() แบบระบุอินเด็กซ์
thislist = ["apple", "banana", "cherry"] |
ผลลัพธ์
['apple', 'banana'] |
- ลบข้อมูลโดยใช้คีย์เวิร์ด del
ตัวอย่าง
thislist = ["apple", "banana", "cherry"] |
ผลลัพธ์
['banana', 'cherry'] |
หรือเราสามารถลบข้อมูล List ทิ้งเลยก็ได้ โดยการใช้คีย์เวิร์ด del ตามด้วยชื่อตัวแปร List ดังนี้
ตัวอย่าง
โค้ดบรรทัดที่ 2 จะเป็นการลบลิสต์ทิ้งไป
thislist = ["apple", "banana", "cherry"] |
- ลบข้อมูลด้วยเมธอด clear()
ตัวอย่าง
บรรทัดที่ 2 ใช้เมธอด clear() ลบข้อมูลทั้งหมดในลิสต์
thislist = ["apple", "banana", "cherry"] |
ผลลัพธ์
[] |
การคัดลอกลิสต์
นักเรียนไม่สามารถคัดลอกlistเพียงแค่พิมพ์ list2 = list1 เนื่องจาก: list2 จะเป็นการอ้างอิงถึง list1 เท่านั้นและการเปลี่ยนแปลงที่ทำใน list1 จะถูกทำใน list2 โดยอัตโนมัติด้วย
ตัวอย่าง
ทำสำเนาlistด้วยเมธอด copy ()
thislist = ["apple", "banana", "cherry"] |
ผลลัพธ์
['apple', 'banana', 'cherry'] |
- คัดลอกลิสต์ด้วยเทธอด list()
อีกวิธีที่สามารถคัดลอกลิสต์ได้ ก็คือ การใช้เมธอด list()
ตัวอย่าง
thislist = ["apple", "banana", "cherry"] |
ผลลัพธ์
['apple', 'banana', 'cherry'] |
การรวมลิสต์ List
เราสามารถรวมลิสต์หลาย ๆ ลิสต์เข้าด้วยกันได้หลายวิธี และวิธีที่ง่ายที่สุดคือการใช้โอเปอเรเตอร์ +
ตัวอย่าง
list1 = ["a", "b" , "c"] list3 = list1 + list2 |
ผลลัพธ์
['a', 'b', 'c', 1, 2, 3] |
อีกวิธีคือการวนloopอ่านข้อมูลในlistเริ่มเเรกแล้วเอาไปต่อท้ายlistเริ่มเเรกทีละลำดับ โดยใช้เมธอด append()
ตัวอย่าง
list1 = ["a", "b" , "c"] for x in list2: print(list1) |
ผลลัพธ์
['a', 'b', 'c', 1, 2, 3] |
วิธีที่ง่าย ๆ อีกวิธีสำหรับการรวมlist 2 รายการเข้าด้วยกันคือ การใช้งานเมธอด extend() โดยมีจะใช้งานดังนี้
ตัวอย่าง
list1 = ["a", "b" , "c"] list1.extend(list2) |
ผลลัพธ์
['a', 'b', 'c', 1, 2, 3] |
บทความนี้จะพูดถึงเรื่องการใช้งาน List ซึ่งจะมี 4 ชนิดหลักๆที่เราได้ศึกษากันไปเเล้ว เมื่อเลือกประเภทการรวบรวมจะมีประโยชน์ในการทำความเข้าใจคุณสมบัติของประเภทนั้น การเลือกประเภทที่เหมาะสมสำหรับชุดข้อมูลเฉพาะอาจหมายถึงการเก็บรักษาความหมายและอาจหมายถึงการเพิ่มประสิทธิภาพหรือความปลอดภัย เพื่อให้เข้าใจมากขึ้น เราไปอ่านบทความถัดไปกันเลย
Tag ที่น่าสนใจ: python lists programming data_structures tuples sets dictionaries indexing slicing
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM