ข้อมูลประเภท List ในภาษา Python

List เป็นประเภทข้อมูลหนึ่งในภาษา Python ที่ใช้สำหรับเก็บข้อมูลหลายค่าในตัวแปรเดียว โดยข้อมูลทั้งหมดจะถูกเก็บในลักษณะลำดับหรือชุดของข้อมูล ที่เรียกว่า element โดยแต่ละ element จะถูกกำหนดตำแหน่งด้วย index ซึ่งเริ่มต้นที่ 0

List เป็น Mutable object ซึ่งหมายความว่าเราสามารถเพิ่ม, ลบ, แก้ไข element ภายใน List ได้ ซึ่งทำให้ List เป็นประเภทข้อมูลที่มีความยืดหยุ่นและนิยมใช้กันอย่างแพร่หลายในการเขียนโปรแกรม

List สามารถเก็บข้อมูลได้หลากหลายประเภท เช่น integer, float, string, boolean หรือแม้แต่ list อื่น ๆ ภายใน List ได้เช่นกัน โดยแต่ละ element ใน List สามารถมีประเภทข้อมูลที่แตกต่างกันได้ ในตัวอย่างเช่นเราสามารถเก็บค่าตัวเลข, ข้อความ และข้อมูลอื่น ๆ ที่เป็นข้อมูลที่ไม่เกี่ยวข้องกันได้ใน List เดียวกันได้ โดยใช้ syntax ดังนี้

my_list = [1, 2.5, "hello", True]


List เป็นชนิดของข้อมูลที่ใช้เก็บข้อมูลหลายๆ ชนิดไว้ในตัวแปรเดียวกัน โดย List จะเรียงลำดับข้อมูลตามลำดับ Index ของข้อมูล โดยจะเริ่ม Index จาก 0 และ List สามารถเก็บข้อมูลซ้ำได้

List สามารถเป็นได้ทั้งข้อมูลแบบตัวเลข ข้อความ และข้อมูลชนิดอื่นๆ แต่ List ยังสามารถเก็บข้อมูลชนิด List ได้อีกด้วยซึ่งทำให้สามารถสร้างโครงสร้างข้อมูลที่ซับซ้อนได้ เช่น List ซ้อน List

List ในภาษา Python มีความสามารถหลายอย่างเช่นการเพิ่ม ลบ แก้ไขข้อมูล การเข้าถึงข้อมูล การตัดข้อมูล (slicing) และการจัดการข้อมูลใน List อีกหลายอย่าง

การเข้าถึงข้อมูล (Access)

ประเภทข้อมูล List ในภาษา Python สามารถทำได้โดยใช้ index หรือตัวชี้ที่ระบุตำแหน่งของข้อมูลใน List โดย index เริ่มต้นที่ 0 สำหรับตัวแรกใน List และเพิ่มขึ้นตามลำดับของข้อมูลใน List

ตัวอย่างการเข้าถึงข้อมูลใน List:

my_list = [1, 2, 3, 4, 5]

# Access the first item
print(my_list[0])  # Output: 1

# Access the second item
print(my_list[1])  # Output: 2

# Access the third item
print(my_list[2])  # Output: 3

# Access the last item
print(my_list[-1])  # Output: 5

ในตัวอย่างข้างต้น my_list เป็น List ที่ประกอบด้วยเลขจำนวนเต็ม 1-5 โดยใช้ index ในการเข้าถึงข้อมูลใน List แต่ละตำแหน่ง โดย index สามารถใช้ค่าติดลบได้เพื่อเข้าถึงข้อมูลจากท้ายสุดของ List ดังตัวอย่างที่ใช้ index เป็น -1 เพื่อเข้าถึงข้อมูลที่ตำแหน่งสุดท้ายของ List ก็ได้ ผลลัพธ์ที่ได้ก็จะเป็น 5 ตามตัวอย่าง

การเปลี่ยนข้อมูล (Change)

ในภาษา Python สามารถเปลี่ยนข้อมูลใน List ได้ด้วยการกำหนดค่าใหม่ให้กับสมาชิกของ List โดยใช้เครื่องหมาย index ดังนี้

my_list = ["apple", "banana", "cherry"]
my_list[1] = "orange"
print(my_list) # Output: ['apple', 'orange', 'cherry']

ในตัวอย่างข้างต้น เรากำหนดค่าใหม่ “orange” ให้กับสมาชิกที่มี index เท่ากับ 1 ของ List “my_list” ซึ่งเป็นสมาชิกที่สองของ List ก่อนหน้า ซึ่งจะทำให้ List เปลี่ยนไปเป็น [‘apple’, ‘orange’, ‘cherry’] โดยสมาชิกตัวที่สองเป็น “orange” แทน “banana” ที่เดิม

การเพิ่มข้อมูล (Add)

การเพิ่มข้อมูล (Add) ประเภทข้อมูล List ในภาษา Python สามารถทำได้หลายวิธี ดังนี้

  1. ใช้ method append(): เพิ่มสมาชิกต่อท้ายของ List

  2. ใช้ method insert(): เพิ่มสมาชิกใน List ตามตำแหน่งที่กำหนด

  3. ใช้ operator +: เชื่อม List 2 ชุดเข้าด้วยกัน

  4. ใช้ method extend(): เพิ่มสมาชิกหลายตัวใน List จาก List อื่นๆ

ตัวอย่างการใช้งานเพิ่มข้อมูล (Add) ประเภทข้อมูล List ดังนี้

# ใช้ method append()
fruits = ['apple', 'banana', 'cherry']
fruits.append('orange')
print(fruits)  # output: ['apple', 'banana', 'cherry', 'orange']

# ใช้ method insert()
fruits = ['apple', 'banana', 'cherry']
fruits.insert(1, 'orange')
print(fruits)  # output: ['apple', 'orange', 'banana', 'cherry']

# ใช้ operator +
fruits = ['apple', 'banana', 'cherry']
more_fruits = ['orange', 'mango', 'grape']
all_fruits = fruits + more_fruits
print(all_fruits)  # output: ['apple', 'banana', 'cherry', 'orange', 'mango', 'grape']

# ใช้ method extend()
fruits = ['apple', 'banana', 'cherry']
more_fruits = ['orange', 'mango', 'grape']
fruits.extend(more_fruits)
print(fruits)  # output: ['apple', 'banana', 'cherry', 'orange', 'mango', 'grape']

การลบข้อมูล (Remove)

การลบข้อมูล (Remove) ประเภทข้อมูล List ในภาษา Python สามารถทำได้โดยใช้ method remove() หรือ pop() โดยสามารถลบตาม index หรือค่าของข้อมูลได้

ตัวอย่างการใช้ remove() ในการลบข้อมูลจาก list:

# สร้าง list ของตัวเลข
numbers = [1, 2, 3, 4, 5]

# ลบข้อมูล 3 จาก list โดยใช้ method remove()
numbers.remove(3)

print(numbers)  # ผลลัพธ์ ['1', '2', '4', '5']

หากต้องการลบข้อมูลตาม index สามารถใช้ method pop() ได้

# สร้าง list ของตัวเลข
numbers = [1, 2, 3, 4, 5]

# ลบข้อมูลตาม index ที่ 2 จาก list โดยใช้ method pop()
numbers.pop(2)

print(numbers)  # ผลลัพธ์ [1, 2, 4, 5]

การใช้ remove() จะลบข้อมูลตัวแรกที่พบใน list ที่มีค่าเท่ากับที่ระบุ แต่ถ้าต้องการลบทุกตัวที่มีค่าเท่ากับที่ต้องการลบ สามารถใช้ลูป for โดยกำหนดเงื่อนไขในการลบข้อมูลได้ เช่น

# สร้าง list ของตัวเลข
numbers = [1, 2, 3, 3, 4, 5, 3]

# ลบข้อมูลทั้งหมดที่มีค่าเป็น 3 จาก list
for num in numbers:
    if num == 3:
        numbers.remove(num)

print(numbers)  # ผลลัพธ์ [1, 2, 4, 5]

การใช้ pop() จะลบข้อมูลตาม index ที่ระบุและส่งค่ากลับมา เมื่อไม่ระบุ index จะลบข้อมูลตัวสุดท้ายของ list และส่งค่ากลับมาเป็นข้อมูลนั้น เช่น

# สร้าง list ของตัวเลข
numbers = [1, 2, 3, 4, 5]

# ลบและเก็บข้อมูลตัวสุดท้าย

การวนซ้ำข้อมูล (Loop)

การทำซ้ำข้อมูล (Loop) ประเภทข้อมูล List ในภาษา Python สามารถทำได้หลายวิธี โดยใช้คำสั่ง for loop หรือ while loop เช่นเดียวกับการทำซ้ำข้อมูลในรูปแบบอื่น ๆ ในภาษา Python ด้วย List comprehension หรือฟังก์ชัน map() และ filter() ก็เป็นวิธีการที่นิยมใช้งานกันอย่างแพร่หลาย

ตัวอย่างการใช้ for loop ในการทำซ้ำข้อมูลใน List:

my_list = [1, 2, 3, 4, 5]

for item in my_list:
    print(item)

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

1
2
3
4
5

การใช้ List comprehension ในการทำซ้ำข้อมูลใน List:

my_list = [1, 2, 3, 4, 5]

doubled_list = [item*2 for item in my_list]

print(doubled_list)

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

[2, 4, 6, 8, 10]

การใช้ฟังก์ชัน map() ในการทำซ้ำข้อมูลใน List:

my_list = [1, 2, 3, 4, 5]

def double_number(num):
    return num*2

doubled_list = list(map(double_number, my_list))

print(doubled_list)

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

[2, 4, 6, 8, 10]

การใช้ฟังก์ชัน filter() ในการทำซ้ำข้อมูลใน List:

my_list = [1, 2, 3, 4, 5]

def is_even(num):
    return num % 2 == 0

even_list = list(filter(is_even, my_list))

print(even_list)

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

[2, 4]

การคัดลอกข้อมูล (Copy)

การคัดลอกข้อมูล (Copy) ประเภทข้อมูล List ในภาษา Python สามารถทำได้โดยใช้เครื่องหมาย colon (:) หรือฟังก์ชัน copy()

การใช้ colon (:) ในการคัดลอก List จะมีลักษณะดังนี้

list_original = [1, 2, 3, 4, 5]
list_copy = list_original[:]

โดย colon (:) จะคัดลอกทุกรายการใน list_original มาไว้ใน list_copy ซึ่ง list_copy จะเป็น List ใหม่ที่มีค่าเดียวกับ list_original แต่เป็น object แยกต่างหาก

การใช้ฟังก์ชัน copy() ในการคัดลอก List จะมีลักษณะดังนี้

list_original = [1, 2, 3, 4, 5]
list_copy = list_original.copy()

โดยฟังก์ชัน copy() จะคัดลอกทุกรายการใน list_original มาไว้ใน list_copy ซึ่ง list_copy จะเป็น List ใหม่ที่มีค่าเดียวกับ list_original แต่เป็น object แยกต่างหาก

หากต้องการคัดลอก List เพื่อทำการแก้ไข List นั้นๆ โดยไม่มีผลกระทบกับ List ต้นฉบับ สามารถใช้ฟังก์ชัน copy() หรือการคัดลอกด้วย colon (:) ทำได้เช่นเดียวกัน

โดยใน Python 3.3 ขึ้นไป สามารถใช้ฟังก์ชัน copy() ได้ง่ายๆ ด้วยการเรียกใช้ method copy() ของ List ตรงๆ ได้เลย ดังตัวอย่างนี้

list_original = [1, 2, 3, 4, 5]
list_copy = list_original.copy()

หรือ

list_original = [1, 2, 3, 4, 5]
list_copy = list_original[:]