
เขียนโปรแกรมภาษา Python ตอนที่ 66 ข้อมูลประเภทรายการ List
Python Collections
ข้อมูลประเภทคอลเล็คชั่น Collections ในภาษาไพธอน มีอยู่ 4 ประเภท ดังนี้
- List ลิสต์ คือ ชุดข้อมูลแบบคอลเล็คชั่นที่มีการเรียงลำดับ และแก้ไขได้ สามารถมีสมาชิกซ้ำกันได้
- Tuple ทูเพิ้ล คือ ชุดข้อมูลแบบคอลเล็คชั่นที่มีการเรียงลำดับเหมือนลิสต์ แต่ไม่สามารถแก้ไขได้ สามารถมีสมาชิกซ้ำกันได้
- Set เซ็บ คือ ชุดข้อมูลแบบคอลเล็คชั่นที่ไม่มีการเรียงลำดับ ไม่มีการทำอินเด็กซ์ และมีสมาชิกซ้ำกันไม่ได้
- Dictionary ดิกชันนารี คือ ชุดข้อมูลแบบคอลเล็คชั่นที่ไม่มีการเรียงลำดับ แต่แก้ไขได้ มีการทำอินเด็กซ์ และมีสมาชิกซ้ำกันไม่ได้
List ข้อมูลประเภทลิสต์ ในภาษาไพธอน
List ลิสต์ คือ ชุดข้อมูลแบบคอลเล็คชันที่มีการเรียงลำดับ และสามารถแก้ไขได้ โดยการสร้างข้อมูลแบบ List ในภาษาไพธอน จะใช้เครื่องหมาย square brackets []
ครอบชุดข้อมูล
ตัวอย่างการสร้างข้อมูลแบบ List
mylist = ["iPhone", "Samsung", "Vivo"] print(mylist)

หรืออีกวิธีหนึ่ง เราสามารถสร้างลิสต์ได้โดยการใช้คอนสตรัคเตอร์ list()
ซึ่งมีรูปแบบการใช้งานดังนี้
mylist = list(("Swift", "C++", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#")) print(mylist)

การเข้าถึงข้อมูลประเภทลิสต์ List
เราสามารถเข้าถึงข้อมูล (Member) แต่ละตัวใน List ได้โดยการอ้างอิงหมายเลขอินเด็กซ์ไว้ภายในเครื่องหมาย []
square brackets โดยหมายเลขอินเด็กซ์จะเริ่มต้นที่ 0
ตัวอย่างการเข้าถึงข้อมูล (Member) ใน List
mylist = ["iPhone", "Samsung", "Vivo"] print(mylist[1])

การระบุหมายเลขอินเด็กซ์ด้วยค่าตัวเลขที่ติดลบ จะหมายถึงการเริ่มต้นอินเด็กซ์จากข้อมูลตัวท้ายสุด คือเริ่มนับจากด้านหลังนั่นเอง เช่น [-1]
จะหมายถึงข้อมูลสมาชิกตัวสุดท้าย (ตัวที่หนึ่งนับจากตัวสุดท้าย ก็คือตัวสุดท้ายนั่นเอง) [-2]
จะหมายถึงข้อมูลสมาชิกลำดับที่สองนับจากตัวสุดท้าย เป็นต้น ดังตัวอย่าง
mylist = ["iPhone", "Samsung", "Vivo"] print(mylist[-1])

เราสามารถเข้าถึงสมาชิกข้อมูลใน List โดยการระบุดินเด็กซ์เป็นช่วงตัวเลขได้ เช่น ต้องการข้อมูลลำดับที่ 3-6 ก็สามารถทำได้ โดยจะคืนค่ากลับมาเป็น List ชุดใหม่ ที่มีข้อมูลตามที่ระบุ
ตัวอย่างการเข้าถึงสมาชิกใน List โดยการระบุอินเด็กซ์เป็นช่วงตัวเลข
mylist = ["Swift", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] print(mylist[3:6])
- บรรทัดที่ 1 สร้างข้อมูลแบบ List ขึ้นมาใช้งาน
- บรรทัดที่ 2 สั่งแสดงค่าของข้อมูลในลิสต์ โดยระบุอินเด็กซ์เป็น
[3:6]
จากโค้ดตัวอย่าง จะได้ข้อมูลที่มีอินเด็กซ์เป็น 3 นั่นคือข้อมูลลำดับที่ 4 (เพราะนับเริ่มจาก 0) เป็นตัวแรก และข้อมูลลำดับที่ 6-1 นั่นคือข้อมูลที่มีอินเด็กซ์เป็น 5 เป็นตัวสุดท้าย

เราสามารถเข้าถึงข้อมูลใน List แบบช่วงข้อมูล โดยไม่ระบุอินเด็กซ์เริ่มต้นก็ได้เช่นกัน ซึ่งจะได้ข้อมูลตั้งแต่ลำดับแรกไปจนถึงข้อมูลลำดับที่อินเด็กซ์สิ้นสุดลบหนึ่ง ดังนี้
mylist = ["Swift", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] print(mylist[:6])

แต่ถ้าระบุเฉพาะอินเด็กซ์เริ่มต้น ว่างอินเด็กซ์สิ้นสุดไว้ จะได้ข้อมูลต้องแต่ลำดับที่ระบุในอินเด็กซ์ไปจนถึงข้อมูลลำดับสุดท้าย
mylist = ["Swift", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] print(mylist[2:])

การเข้าถึงข้อมูล List แบบกำหนดช่วงข้อมูล เราสามารถระบุเป็นค่าตัวเลขติดลบได้เช่นกัน
mylist = ["Swift", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] print(mylist[-4:-1])
จากตัวอย่าง จะได้ข้อมูลตั้งแต่ลำดับที่ -4 (ลำดับที่ 4 นับจากจำดับสุดท้าย คือ Kotlin) ไปจนถึงข้อมูลลำดับที่อยู่ก่อนลำดับ -1 (คือลำดับ -2 ซึ่งหมายถึงข้อมูลลำดับที่ 2 นับจากลำดับสุดท้าย นั่นก็คือ Objective-C นั่นเอง)

การเปลี่ยนแปลงข้อมูลในลิสต์ List
เราสามารถเปลี่ยนแปลงข้อมูลในลิสต์ List ได้ โดยระบุอินเด็กซ์ของลิสต์ แล้วกำหนดค่าใหม่ลงไปได้เลย
ตัวอย่างการเปลี่ยนแปลงข้อมูลใน List
mylist = ["Swift", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] mylist[0] = 'C++' print(mylist)
บรรทัดที่ 2 เข้าถึงข้อมูลในลิสต์โดยระบุอินเด็กซ์ 0 ซึ่งหมายถึงข้อมูลลำดับที่ 1 และกำหนดค่าใหม่ลงไป ข้อมูลเดิมเป็น Swift ข้อมูลใหม่เป็น C++

การใช้ลูป Loop เข้าถึงข้อมูลใน List
เราสามารถใช้ลูป for
เข้าถึงข้อมูลใน List ได้ ดังตัวอย่าง
mylist = ["Swift", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] for x in mylist: print(x)
จากโค้ดด้านบน เป็นการใช้ลูป for เข้าถึงสมาชิกใน List แล้วแสดงผลออกมาทีละลำดับดับ

การตรวจสอบข้อมูลในลิสต์ List
เราสามารถตรวจสอบว่ามีข้อมูลที่เราต้องการอยู่ในลิสต์ List หรือไม่ โดยใช้คีย์เวิร์ด in
mylist = ["Swift", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] if "Python" in mylist: print("Yes, 'Python' is in the list")
บรรทัดที่ 2 ใช้คีย์เวิร์ด in ตรวจสอบว่ามีข้อมูลตามที่เราระบุอยู่ในลิสต์หรือไม่

การตรวจสอบจำนวนสมาชิกในลิสต์ List
เราสามารถตรวจสอบจำนวนสมาชิกทั้งหมดใน List ได้โดยการใช้ฟังก์ชัน len()
ดังนี้
mylist = ["Swift", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] print(len(mylist)) #7
ฟังก์ชัน len()
จะคืนค่ากลับมาเป็นจำนวนสมาชิกทั้งหมดในลิสต์

การเพิ่มสมาชิกใน List
เราสามารถเพิ่มข้อมูลหรือสมาชิกใหม่เข้าไปใน List ได้ โดยใช้เมธอด append()
โดยข้อมูลที่เพิ่มเข้าไปใหม่จะถูกเพิ่มต่อท้ายข้อมูลลำดับสุดท้ายในลิสต์ ดังนี้
mylist = ["Swift", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] mylist.append("C++") print(mylist)
บรรทัดที่ 2 ใช้เมธอด append()
เพิ่มข้อมูลใหม่ในลิสต์

ถ้าต้องการแทรกข้อมูลใหม่เข้าไปในลิสต์โดยการระบุตำแหน่งอินเด็กซ์ สามารถทำได้โดยการใช้เมธอด insert()
โดยมีรูปแบบการใช้งานดังนี้
insert(index, data)
- index คือตำแหน่งที่ต้องการแทรกข้อมูลในลิสต์
- data คือข้อมูลที่ต้องการแทรกในลิสต์
ตัวอย่างการใช้งานเมธอด insert()
mylist = ["Swift", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] mylist.insert(1, "C++") print(mylist)
บรรทัดที่ 2 ใช้เมธอด insert() แทรกข้อมูล “C++” โดยระบุอินเด็กซ์เป็น 1 ซึ่งก็คือตำแหน่งที่ 2 ในลิสต์นั่นเอง

การลบข้อมูลออกจากลิสต์ List
เราสามารถลบข้อมูลประเภทลิสต์ List ได้หลายวิธี ดังนี้
ลบข้อมูลด้วยเมธอด remove()
เราสามารถลบข้อมูลออกจากลิสต์โดยใช้เมธอด remove()
โดยมีวิธีใช้งานดังนี้
mylist = ["Swift", "C++", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] mylist.remove("C++") print(mylist)
บรรทัดที่ 2 ใช้เมธอด remove() ลบข้อมูลออกจากลิสต์ โดยระบุข้อมูลที่ต้องการลบ

ลบข้อมูลโดยใช้เมธอด pop()
เราสามารถใช้เมธอด pop()
ลบข้อมูลลิสต์ โดยการระบุอินเด็กซ์ที่ต้องการลบ (หรือถ้าไม่ระบุอินเด็กซ์ จะเป็นการลบข้อมูลตัวสุดท้าย)
ตัวอย่างการใช้เมธอ pop()
แบบระบุอินเด็กซ์
mylist = ["Swift", "C++", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] mylist.pop(1) print(mylist)
จากตัวอย่าง ใช้เมธอด pop()
โดยระบุอินเด็กซ์เป็น 1 ข้อมูลลำดับที่ 2 จะถูกลบออกไป

ตัวอย่งการใช้เมธอด pop()
แบบไม่ระบุอินเด็กซ์
mylist = ["Swift", "C++", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] mylist.pop() print(mylist)
เมื่อใช้เมธอด pop()
โดยไม่ระบุอินเด็กซ์ ข้อมูลลำดับสุดท้ายจะถูกลบออกไป

ลบข้อมูลโดยใช้คีย์เวิร์ด del
เราสามารถใช้คีย์เวิร์ด del
ลบข้อมูลที่ต้องการออกจาก List โดยระบุอินเด็กซ์ข้อมูลที่ต้องการลบ โดยมีวิธีการใช้งานดังนี้
mylist = ["Swift", "C++", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] del mylist[1] print(mylist)
บรรทัดที่ 2 ใช้คีย์เวิร์ด del
ตามด้วยชื่อตัวแปร List โดยมีการระบุอินเด็กซ์ไว้ใน []
จะเป็นการลบข้อมูลในอินเด็กซ์ที่ระบุ

หรือเราสามารถลบข้อมูล List ทิ้งเลยก็ได โดยการใช้คีย์เวิร์ด del
ตามด้วยชื่อตัวแปร List ดังนี้
mylist = ["Swift", "C++", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] del mylist
โค้ดบรรทัดที่ 2 จะเป็นการลบลิสต์ทิ้งไป
ลบข้อมูลด้วยเมธอด clear()
เราสามารถลบข้อมูลทั้งหมดในลิสต์ด้วยเมธอด clear()
ซึ่งจะเป็นการลบสมาชิกทั้งหมดในลิสต์
mylist = ["Swift", "C++", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] mylist.clear() print(mylist)
บรรทัดที่ 2 ใช้เมธอด clear()
ลบข้อมูลทั้งหมดในลิสต์

การคัดลอกลิสต์
เราสามารถคัดลอกหรือทำสำเนารายการลิสต์ List ได้หลายวิธี ดังนี้
คัดลอกลิสต์ด้วยเมธอด copy()
เราสามารถใช้เมธอด copy()
เพื่อทำการคัดลอกลิสต์ได้ โดยมีวิธีใช้งานดังนี้
mylist = ["Swift", "C++", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] yourlist = mylist.copy() print(mylist) print(yourlist)
บรรทัดที่ 2 สร้างตัวแปร yourlist ขึ้นมาใหม่ โดยทำการคัดลอกข้อมูลในตัวแปร mylist ด้วยเมธอด copy()

คัดลอกลิสต์ด้วยเทธอด list()
อีกวิธีที่สามารถคัดลอกลิสต์ได้ ก็คือ การใช้เมธอด list()
mylist = ["Swift", "C++", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] yourlist = list(mylist) print(mylist) print(yourlist)

การจอยลิสต์ List
เราสามารถรวมลิสต์หลาย ๆ ลิสต์เข้าด้วยกันได้หลายวิธี และวิธีที่ง่ายที่สุดคือการใช้โอเปอเรเตอร์ +
mylist = ["Swift", "C++", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] yourlist = ["One", "Two", "Three", "Four", "Five", "Six", "Seven"] ourlist = mylist + yourlist print(ourlist) #ourlist will be ['Swift', 'C++', 'Python', 'Java', 'Kotlin', 'HTML', 'Objective-C', 'C#', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven']

อีกวิธีคือการวนลูปอ่านข้อมูลในลิสต์ต้นทางแล้วเอาไปต่อท้ายลิสต์ต้นทางทีละลำดับ โดยใช้เมธอด append()
ดังตัวอย่าง
mylist = ["Swift", "C++", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] yourlist = ["One", "Two", "Three", "Four", "Five", "Six", "Seven"] for x in yourlist: mylist.append(x) print(mylist) #mylist will be ['Swift', 'C++', 'Python', 'Java', 'Kotlin', 'HTML', 'Objective-C', 'C#', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven']
วิธีที่ง่าย ๆ อีกวิธีสำหรับการรวมลิสต์ 2 รายการเข้าด้วยกันคือ การใช้งานเมธอด extend()
โดยมีรูปแบบการใช้งานดังนี้
mylist = ["Swift", "C++", "Python", "Java", "Kotlin", "HTML", "Objective-C", "C#"] yourlist = ["One", "Two", "Three", "Four", "Five", "Six", "Seven"] mylist.extend(yourlist) print(mylist) #mylist will be ['Swift', 'C++', 'Python', 'Java', 'Kotlin', 'HTML', 'Objective-C', 'C#', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven']
เมธอดของข้อมูลประเภท List
เมธอดที่น่าสนใจสำหรับข้อมูลประเภท List มีดังนี้
ชื่อเมธอด | คำอธิบาย |
append() | เพิ่มเอลิเมนต์ต่อท้าย List |
clear() | ลบเอลิเมนต์ใน List |
copy() | คัดลอก List |
count() | นับจำนวนข้อมูลที่ระบุที่ปรากฏใน List |
extend() | เพิ่มเอลิเมนต์หรือข้อมูลประเภทรายการอื่น ๆ ต่อท้าย List |
index() | ค้นหาข้อมูลที่ระบุแล้วคืนค่ากลับมาเป็น index ของข้อมูลนั้นที่เจอครั้งแรก |
insert() | แทรกเอลิเมนต์เข้าไปใน List ณ ตำแหน่งที่ระบุ |
pop() | ลบเอลิเมนต์ ณ ตำแหน่งที่ระบุ |
remove() | ลบเอลิเมนต์ที่มีค่าตามที่ระบุ |
reverse() | เรียงเอลิเมนต์กลับด้าน |
sort() | จัดเรียงเอลิเมนต์ใน List |
เขียนโปรแกรมภาษา Python
- ตอนที่ 1 ทำความรู้จักกับภาษาไพธอน Python
- ตอนที่ 2 เตรียมเครื่องมือ
- ตอนที่ 3 Python Syntax
- ตอนที่ 4 การเขียนคอมเม้นต์
- ตอนที่ 5 การใช้ฟังก์ชัน print
- ตอนที่ 6 ตัวแปร
- ตอนที่ 7 การตั้งชื่อตัวแปร
- ตอนที่ 8 การกำหนดค่าให้ตัวแปรทีละหลายตัว
- ตอนที่ 9การแสดงค่าจากตัวแปร
- ตอนที่ 10 ตัวแปรประเภท Global
- ตอนที่ 11 ชนิดข้อมูล
- ตอนที่ 12 ข้อมูลชนิดตัวเลข
- ตอนที่ 13 การแปลงชนิดข้อมูล
- ตอนที่ 14 ข้อมูลชนิด String
- ตอนที่ 15 slice syntax
- ตอนที่ 16 การเปลี่ยนแปลงข้อมูล String
- ตอนที่ 17 การต่อข้อมูลชนิด String
- ตอนที่ 18 การจัดรูปแบบ String
- ตอนที่ 19 Escape Character
- เตอนที่ 20 เมธอด zfill()
- ตอนที่ 21 เมธอด upper()
- ตอนที่ 22 เมธอด title()
- ตอนที่ 23 เมธอด swapcase()
- ตอนที่ 24 เมธอด strip()
- ตอนที่ 25 เมธอด startswith()
- ตอนที่ 26 เมธอด splitlines()
- ตอนที่ 27 เมธอด split()
- ตอนที่ 28 เมธอด rstrip()
- ตอนที่ 29 เมธอด rsplit()
- ตอนที่ 30 เมธอด rpartition()
- ตอนที่ 31 เมธอด rjust()
- ตอนที่ 32 เมธอด rindex()
- ตอนที่ 33 เมธอด rfind()
- ตอนที่ 34 เมธอด replace()
- ตอนที่ 35 เมธอด partition()
- ตอนที่ 36 เมธอด lstrip()
- ตอนที่ 37 เมธอด lower()
- ตอนที่ 38 เมธอด ljust()
- ตอนที่ 39 เมธอด join()
- ตอนที่ 40 เมธอด isupper()
- ตอนที่ 41 เมธอด istitle()
- ตอนที่ 42 เมธอด isspace()
- ตอนที่ 43 เมธอด isprintable()
- ตอนที่ 44 เมธอด isnumeric()
- ตอนที่ 45 เมธอด islower()
- ตอนที่ 46 เมธอด isidentifier()
- ตอนที่ 47 เมธอด isdigit()
- ตอนที่ 48 เมธอด isdecimal()
- ตอนที่ 49 เมธอด isalpha()
- ตอนที่ 50 เมธอด isalnum()
- ตอนที่ 51 เมธอด index()
- ตอนที่ 52 เมธอด format()
- ตอนที่ 53 เมธอด find()
- ตอนที่ 54 เมธอด expandtabs()
- ตอนที่ 55 เมธอด endswith()
- ตอนที่ 56 เมธอด encode()
- ตอนที่ 57 เมธอด count()
- ตอนที่ 58 เมธอด center()
- ตอนที่ 59 เมธอด casefold()
- ตอนที่ 60 เมธอด capitalize()
- ตอนที่ 61 เมธอด format_map()
- ตอนที่ 62 เมธอด maketrans()
- ตอนที่ 63 เมธอด translate()
- ตอนที่ 64 ข้อมูลชนิด Boolean
- ตอนที่ 65 ตัวดำเนินการ
- ตอนที่ 66 ข้อมูลประเภท List
- ตอนที่ 67 การเข้าถึงสมาชิกใน List
- ตอนที่ 68 การเปลี่ยนแปลงข้อมูลใน List
- ตอนที่ 69 การเพิ่มข้อมูลใน List
- ตอนที่ 70 การลบข้อมูลใน List
- ตอนที่ 71 การเข้าถึงข้อมูลใน List ด้วย loop
- ตอนที่ 72 List Comprehension
- ตอนที่ 73 การเรียงข้อมูลใน List
- ตอนที่ 74 การคัดลอก List
- ตอนที่ 75 การรวม List เข้าด้วยกัน
- ตอนที่ 76 เมธอด append()
- ตอนที่ 77 เมธอด clear()
- ตอนที่ 78 เมธอด copy()
- ตอนที่ 79 เมธอด count()
- ตอนที่ 80 เมธอด extend()
- ตอนที่ 81 เมธอด index()
- ตอนที่ 82 เมธอด insert()
- ตอนที่ 83 เมธอด pop()
- ตอนที่ 84 เมธอด remove()
- ตอนที่ 85 เมธอด reverse()
- ตอนที่ 86 เมธอด sort()
- ตอนที่ 87 ข้อมูลชนิด Tuple
- ตอนที่ 88 การเข้าถึงข้อมูลใน Tuple
- ตอนที่ 89 การแก้ไขข้อมูลใน Tuple
- ตอนที่ 90 การแยกข้อมูลใน Tuple
- ตอนที่ 91 เข้าถึงข้อมูลใน Tuple ด้วยลูป
- ตอนที่ 92 การรวม Tuple เข้าด้วยกัน
- ตอนที่ 93 เมธอด count()
- ตอนที่ 94 เมธอด index()
- ตอนที่ 95 ข้อมูลประเภท Set
- ตอนที่ 96 การเข้าถึงข้อมูลใน Set
- ตอนที่ 97 การเพิ่มข้อมูลใน Set
- ตอนที่ 98 การลบข้อมูลใน Set
- ตอนที่ 99 การเข้าถึงข้อมูลใน Set ด้วยลูป for
- ตอนที่ 100 การจอย Join ข้อมูลใน Set
- ตอนที่ 101 เมธอด add()
- ตอนที่ 102 เมธอด clear()
- ตอนที่ 103 เมธอด copy()
- ตอนที่ 104 เมธอด difference()
- ตอนที่ 105 เมธอด difference_update()
- ตอนที่ 106 เมธอด discard()
- ตอนที่ 107 เมธอด intersection()
- ตอนที่ 108 เมธอด intersection_update()
- ตอนที่ 109 เมธอด isdisjoint()
- ตอนที่ 110 เมธอด issubset()
- ตอนที่ 111 เมธอด issuperset()
- ตอนที่ 112 เมธอด pop()
- ตอนที่ 113 เมธอด remove()
- ตอนที่ 114 เมธอด symmetric_difference()
- ตอนที่ 115 เมธอด symmetric_difference_update()
- ตอนที่ 116 เมธอด union()
- ตอนที่ 117 เมธอด update()
- ตอนที่ 118 ข้อมูลประเภท Dictionary