5.2 การเข้าถึงสมาชิกภายใน List
List (ลิสต์) คือโครงสร้างข้อมูลชนิดหนึ่งในภาษา Python ที่ใช้เก็บข้อมูลแบบลำดับ (Sequence) โดยมี Index เป็นตัวระบุตำแหน่งในการเข้าถึงข้อมูล เราสามารถใช้ List เพื่อเก็บข้อมูลจำนวนมากและหลากหลายประเภทในเวลาเดียวกัน List เป็นประเภทข้อมูลที่ใช้อย่างหลากหลายในการเขียนโปรแกรม นอกจากนี้ ในภาษา Python ยังมี built-in function ที่สามารถทำงานกับ List และใน List ออบเจ็คเองก็มีเมธอดต่างๆ เป็นจำนวนมากที่ช่วยอำนวยความสะดวกในการเขียนโปรแกรม
การเข้าถึงสมาชิกภายใน List
List นั้นใช้ Index สำหรับการเข้าถึงข้อมูล โดย Index ของ List จะเป็นจำนวนเต็มที่เริ่มจาก 0 และเพิ่มขึ้นทีละ 1 ไปเรื่อยๆ ดังนั้น เราจึงสามารถเข้าถึงข้อมูลภายใน List เพื่ออ่านหรืออัพเดทค่าได้โดยตรงผ่าน Index ของมัน นี่เป็นโค้ดการเข้าถึงข้อมูลภายใน List ในภาษา Python
names = ['Mateo', 'Danny', 'James', 'Thomas', 'Luke']
print('names[0] = ', names[0])
print('names[3] = ', names[3])
print('names[-1] = ', names[-1])
# update value
names[0] = 'Bob'
print('names[0] = ', names[0])
ในตัวอย่าง เรามีตัวแปร List ที่ชื่อว่า names ดังนั้น เพื่อเข้าถึงสมาชิกตัวแรกภายใน List ซึ่งก็คือ "Mateo" นั้นจะใช้คำสั่ง names[0] และสมาชิกที่มีค่าเป็น "Thomas" ซึ่งอยู่ตำแหน่งที่ 4 จะใช้คำสั่ง names[3] สังเกตว่า Index จะลดลงหนึ่งเพราะ Index ของ List นั้นเริ่มต้นจาก 0
print('names[-1] = ', names[-1])
นอกจากนี้ เราสามารถเข้าถึงข้อมูลภายใน List โดยการใช้ Index เป็นจำนวนลบได้ โดยเริ่มจาก -1 ซึ่งเป็นสมาชิกตัวสุดท้ายของ List และ -2 สมาชิกตัวถัดมาและลดลงไปทีละ 1
names[0] = 'Bob'
print('names[0] = ', names[0])
นี่เป็นการอัพเดทค่าของสมาชิกภายใน List ในตัวอย่างเราได้เปลี่ยนค่าของสมาชิกในตำแหน่งแรกของ List จากเดิมที่เป็น "Mateo" ให้เป็น "Bob"
เมื่อรันโปรแกรมจะได้ผลลัพธ์ ดังนี้
names[0] = Mateo
names[3] = Thomas
names[-1] = Luke
names[0] = Bob
การอ่านค่าใน List ด้วยคำสั่ง for loop
เนื่องจาก List นั้นเก็บข้อมูลเป็นแบบลำดับและใช้ Index ในการเข้าถึงข้อมูล ดังนั้น เราจึงมักจะใช้คำสั่งวนซ้ำสำหรับการเขียนโปรแกรมที่ทำงานกับ List เพราะทำให้การทำงานรวดเร็วและง่ายขึ้น เช่น การใช้คำสั่งวนซ้ำวนอ่านค่าใน List ที่มีข้อมูลเป็นจำนวนมาก เป็นต้น ต่อไปมาดูตัวอย่างการใช้งานคำสั่ง For loop กับ List ในภาษา Python
numbers = [10, 20, 30, 40, 50, 60, 70]
sum = 0
for n in numbers:
print(n, end =' ')
sum += n
print('sum = ', sum)
names = ['Mateo', 'Danny', 'James', 'Thomas', 'Luke']
for i in range(0, len(names)):
print(names[i].upper(), end =' ')
ในตัวอย่าง เป็นการวนอ่านค่าภายใน List ด้วยการใช้คำสั่ง For loop โดยเราได้แยกการทำงานออกเป็นสองลูป ในลูปแรกเป็นการใช้งานคำสั่ง For loop เพื่อวนอ่านค่าภายใน List numbers โดยตรง โปรแกรมจะวนอ่านค่าไปทีละค่าและนำค่าในแต่ละรอบที่ได้มาใส่ในตัวแปร n เราได้ทำการแสดงผลตัวเลขภายใน List และหาผลรวมของตัวเลขภายใน List โดยเก็บไว้ในตัวแปร sum
ในลูปที่สอง เป็นการใช้คำสั่ง For loop เช่นกัน แต่ในตอนนี้เราจะสร้าง Index ขึ้นมาโดยการใช้ตัวแปร i เป็นตัวรัน Index จาก 0 ถึงขนาดตัวสุดท้ายของ List ที่สร้างจากฟังก์ชัน range() และเราแสดงผลชื่อในตัวพิมพ์ใหญ่ด้วยเมธอด upper() ของ String
เมื่อรันโปรแกรมจะได้ผลลัพธ์ ดังนี้
10 20 30 40 50 60 70 sum = 280
MATEO DANNY JAMES THOMAS LUKE