目次

1. พื้นฐานการกำหนดค่าเริ่มต้นของอาร์เรย์ (ลิสต์) ใน Python

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

ลิสต์ใน Python คืออะไร?

ลิสต์เป็นโครงสร้างข้อมูลสำหรับรวบรวมสมาชิกหลายชนิดข้อมูล เช่น ตัวเลขหรือสตริง เข้าด้วยกันในชุดเดียว และถูกใช้เป็น “อาร์เรย์” ของ Python สามารถมีสมาชิกที่มีชนิดข้อมูลต่างกัน และหลังจากกำหนดค่าเริ่มต้นแล้วสามารถเพิ่มหรือลบสมาชิกได้อย่างอิสระ
example_list = [1, "Hello", True]
print(example_list)
# ผลลัพธ์: [1, "Hello", True]

การสร้างลิสต์ว่าง

หากต้องการสร้างลิสต์ว่าง ให้ใช้ [] หรือ list() วิธีนี้เหมาะเมื่อจะเพิ่มสมาชิกในภายหลังหรือเมื่ออยากเตรียมตัวแปรไว้ก่อน
empty_list1 = []
empty_list2 = list()
print(empty_list1)  # ผลลัพธ์: []
print(empty_list2)  # ผลลัพธ์: []

การกำหนดค่าเริ่มต้นลิสต์ด้วยจำนวนสมาชิกที่กำหนด

ใน Python สามารถสร้างลิสต์ที่มีจำนวนสมาชิกตามที่กำหนดได้อย่างง่ายดาย ตัวอย่างเช่น สามารถสร้างลิสต์ที่กำหนดค่าเริ่มต้นด้วยเลข “0” จำนวน 5 ตัวได้ดังนี้
initial_list = [0] * 5
print(initial_list)  
# ผลลัพธ์: [0, 0, 0, 0, 0]
วิธีนี้สะดวกเมื่ออยากสร้างลิสต์ที่มีค่าเดียวกันทั้งหมด

การใช้ฟังก์ชัน list เพื่อกำหนดค่าเริ่มต้นลิสต์

ฟังก์ชัน list() มีประโยชน์เมื่อสร้างลิสต์จากชนิดข้อมูลอื่น เช่น สามารถแปลงสตริงเป็นลิสต์ หรือแปลงทูเพิลเป็นลิสต์ได้
char_list = list("Python")
tuple_list = list((1, 2, 3))
print(char_list)  
# ผลลัพธ์: ['P', 'y', 't', 'h', 'o', 'n']
print(tuple_list)  
# ผลลัพธ์: [1, 2, 3]

2. กำหนดค่าเริ่มต้นให้ลิสต์ด้วย List Comprehension

List Comprehension เป็นไวยากรณ์ที่สะดวก ช่วยให้เขียนโค้ด Python ได้อย่างกระชับและมีประสิทธิภาพ โดยเฉพาะอย่างยิ่งเมื่อใช้กำหนดค่าเริ่มต้นให้ลิสต์ตามเงื่อนไข

List Comprehension พื้นฐาน

ในตัวอย่างต่อไปนี้ เราจะกำหนดค่าเริ่มต้นลิสต์ที่มีสมาชิกเป็นจำนวนเต็มตั้งแต่ 0 ถึง 9 ด้วย List Comprehension
numbers = [i for i in range(10)]
print(numbers)  
# 出力: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

List Comprehension แบบมีเงื่อนไข

คุณยังสามารถสร้างลิสต์โดยเพิ่มเงื่อนไขได้เช่นกัน ตัวอย่างเช่น ลิสต์ที่เลือกเฉพาะจำนวนคู่สามารถเขียนได้ดังนี้
even_numbers = [i for i in range(10) if i % 2 == 0]
print(even_numbers)  
# 出力: [0, 2, 4, 6, 8]
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

3. การเริ่มต้นลิสต์สองมิติ

ลิสต์ของ Python สามารถแทนอาร์เรย์หลายมิติได้ด้วยการมีลิสต์อยู่ภายในลิสต์ ด้วยเหตุนี้จึงสามารถจัดการโครงสร้างข้อมูลแบบตารางหรือเมทริกซ์ได้

วิธีการเริ่มต้นลิสต์สองมิติ

ต่อไปนี้เป็นตัวอย่างการเริ่มต้นลิสต์สองมิติขนาด 3×3 โดยใช้ list comprehension วิธีนี้ทำให้ลิสต์แต่ละรายการเป็นอิสระจากกัน จึงป้องกันการเปลี่ยนแปลงโดยไม่คาดคิดที่เกิดจากการอ้างอิงร่วม
matrix = [[0 for _ in range(3)] for _ in range(3)]
print(matrix)  
# ผลลัพธ์: [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

ข้อควรระวัง: ปัญหาการอ้างอิงเมื่อเริ่มต้นลิสต์สองมิติ

[[0] * 3] * 3 หากเขียนแบบนี้ แต่ละแถวจะอ้างอิงอ็อบเจ็กต์เดียวกัน ทำให้การเปลี่ยนแปลงในจุดหนึ่งสะท้อนไปยังแถวอื่นด้วย การใช้ list comprehension จะทำให้แต่ละแถวถูกสร้างเป็นลิสต์ที่เป็นอิสระจากกัน

4. วิธีการจัดการลิสต์:การเพิ่มและการรวมสมาชิก

ลิสต์ใน Python สามารถเพิ่มหรือลบสมาชิกแบบไดนามิกหลังจากสร้างแล้ว และสามารถรวมกับลิสต์อื่นได้ ที่นี่เราจะอธิบายวิธีการพื้นฐาน

การเพิ่มสมาชิก:เมธอด append

append() จะเพิ่มสมาชิกที่ท้ายลิสต์ได้
my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  
# ผลลัพธ์: [1, 2, 3, 4]

การแทรกสมาชิก:เมธอด insert

insert() จะแทรกสมาชิกลงในตำแหน่งที่ระบุภายในลิสต์ ระบุอินเด็กซ์เพื่อแทรกในตำแหน่งใดก็ได้
my_list = [1, 2, 3]
my_list.insert(1, 'new')
print(my_list)  
# ผลลัพธ์: [1, 'new', 2, 3]

การรวมลิสต์:ตัวดำเนินการ +

ในการเชื่อมลิสต์หลายรายการ ให้ใช้ตัวดำเนินการ +
list1 = [1, 2, 3]
list2 = [4, 5]
combined_list = list1 + list2
print(combined_list)  
# ผลลัพธ์: [1, 2, 3, 4, 5]
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

5. วิธีการเริ่มต้นอื่น ๆ: โมดูล array และ NumPy

ใน Python มีโมดูล array และไลบรารี NumPy ที่เน้นงานคำนวณเชิงตัวเลข ทำให้สามารถเริ่มต้นอาร์เรย์ด้วยโครงสร้างข้อมูลนอกเหนือจากลิสต์ได้เช่นกัน

การเริ่มต้นด้วยโมดูล array

โมดูล array ของ Python สามารถเก็บอาร์เรย์ที่มีชนิดข้อมูลเดียวกันได้อย่างมีประสิทธิภาพ จึงใช้หน่วยความจำน้อยเป็นจุดเด่น
import array
int_array = array.array('i', [0] * 5)
print(int_array)  
# ผลลัพธ์: array('i', [0, 0, 0, 0, 0])

การเริ่มต้นอาร์เรย์หลายมิติด้วย NumPy

หากใช้ไลบรารี NumPy จะสามารถจัดการอาร์เรย์หลายมิติขนาดใหญ่ได้อย่างมีประสิทธิภาพ โดยเฉพาะในการคำนวณทางวิทยาศาสตร์และการวิเคราะห์ข้อมูลจะถูกใช้งานบ่อยครั้ง
import numpy as np
numpy_array = np.zeros((3, 3))
print(numpy_array)
# ผลลัพธ์:
# [[0. 0. 0.]
#  [0. 0. 0.]
#  [0. 0. 0.]]
อาร์เรย์ของ NumPy มีประสิทธิภาพด้านการคำนวณสูง และเหมาะกับการประมวลผลข้อมูลขนาดใหญ่เมื่อเทียบกับลิสต์มาตรฐานของ Python

6. การเปรียบเทียบวิธีการเริ่มต้นอาร์เรย์ใน Python

ในบทความนี้ เราได้อธิบายอย่างครอบคลุมเกี่ยวกับวิธีการเริ่มต้นลิสต์และอาร์เรย์ใน Python การทำความเข้าใจข้อดีของแต่ละวิธีและการเลือกใช้ให้เหมาะกับงาน จะช่วยให้คุณเขียนโค้ดได้อย่างมีประสิทธิภาพมากขึ้น。
  • การสร้างลิสต์ว่าง:เริ่มต้นได้อย่างเรียบง่ายด้วย [] หรือ list()
  • List comprehension:สร้างลิสต์ขององค์ประกอบตามเงื่อนไขได้อย่างง่ายดาย。
  • ลิสต์หลายมิติ:แสดงเป็นลิสต์ของลิสต์ พร้อมทั้งทำความเข้าใจข้อควรระวังด้วย。
  • การเพิ่มและการรวมองค์ประกอบ:จัดการได้อย่างยืดหยุ่นด้วย append(), insert(), และตัวดำเนินการ +
  • array และ NumPy:โครงสร้างข้อมูลที่เหมาะสำหรับข้อมูลเชิงตัวเลขและการประมวลผลข้อมูลหลายมิติ。
เมื่อเข้าใจลักษณะเฉพาะของแต่ละเมธอดและไลบรารี และเลือกใช้ในจังหวะที่เหมาะสม คุณจะสามารถใช้ประโยชน์จากการเริ่มต้นลิสต์ใน Python ได้อย่างคล่องตัว。
侍エンジニア塾