Collection Data Types — List
Note
ดู Tuple, Set, Dictionary ต่อใน Module 4b 👉
โครงสร้างสำหรับจัดเก็บชุดข้อมูล
. . .
Python มี built-in ให้ 4 แบบ:
list — มีลำดับ แก้ไขได้tuple — มีลำดับ แก้ไขไม่ได้set — ไม่ซ้ำ ไม่มีลำดับdictionary — คู่ key : value
เปรียบเหมือนหลายสิ่งเก็บรวมในกล่องใบเดียว
ภาพ: Box of cardboard by juedi120 · Public Domain (PDM 1.0)
ObjectObject ซึ่งมีคุณสมบัติสำคัญ:ชื่อตัวแปร.คำสั่ง()Note
เมื่อเห็นคำสั่งในรูปแบบ .function_name() (มี . นำหน้า) หมายความว่าเป็น method ที่ติดตัวมากับ Object — ต้องเรียกใช้ในรูปแบบ variable_name.function_name()
ลิสต์ — จัดเก็บชุดข้อมูลภายใต้ตัวแปรเดียว
name1, name2, name3, …score1, score2, score3, …Tip
ลิสต์ใน Python เทียบเคียงได้กับ array ในภาษาคอมพิวเตอร์อื่น ๆ
data[index]index เริ่มต้นที่ 0 เสมอ — ตำแหน่งสุดท้ายคือ n-1| index | 0 | 1 | 2 | 3 | 4 |
| value | 16 | 2 | 77 | 40 | 12071 |
data[2] → element ตัวที่ 3 มีค่า 77data[5] → ไม่มีอยู่จริง, error![] สร้างลิสต์ โดยคั่นข้อมูลแต่ละตัวด้วย ,สร้างลิสต์ต่อไปนี้แล้วแสดงผล
lst1 — ลิสต์ว่างlst2 — เก็บเลข 1, 2, 3, 40, 50, 60lst3 — เก็บข้อมูลคละชนิด 1, "Hello", 3.4ใช้ตัวแปรเพียง 1 ตัวรับค่าจาก input().split() → ได้ผลลัพธ์เป็น List
Note
ทบทวน: input().split() (Module 3)
len()ใช้คำสั่ง len(ตัวแปรลิสต์) → ผลลัพธ์เป็น int
กำหนด my_list = ['E','n','g','r'] — แก้ไขค่าข้อมูลในลิสต์ดังนี้
'n' เป็น 8.0'g' เป็น 'hello''r' เป็น Trueใช้ compound assignment operators กับข้อมูลในลิสต์ เพื่อให้โปรแกรมพิมพ์ผลลัพธ์ต่อไปนี้
Note
จำ compound assignment operators ไม่ได้? 👉 กลับไปดู Assignment Operators (Module 3a)
Note
เมื่อรันโค้ดนี้ จะให้ผลลัพธ์อะไร
| index | 0 | 1 | 2 | 3 | 4 |
| neg index | -5 | -4 | -3 | -2 | -1 |
| value | 16 | 2 | 77 | 40 | 12071 |
Negative index — ดึงข้อมูลจากท้ายลิสต์
range_of_data = list_variable[start:stop:step]
+stepdata[2:n] → เข้าถึงข้อมูลตั้งแต่ data[2] จนถึง data[n-1]
กำหนด a = [16, 2, 77, 40, 0, "000", 0.0, 1, 1, 1, 112071]
จงใช้ slice ดึงข้อมูลจากลิสต์ ให้ได้ดังนี้
[16, 2, 77][77, 40, 0, "000"]ทดลอง slice a ด้วยรูปย่อ
Note
ถ้าละ start จะเท่ากับ start=0 และถ้าละ stop จะเท่ากับ stop=len(a)
จาก a = [16, 2, 77, 40, 0, "000", 0.0, 1, 1, 1, 112071]
จงใช้ slice assignment แก้ไขข้อมูลหลายตัวพร้อมกัน ให้ได้ผลลัพธ์เป็น
[1, 1, 1, 40, 0, '000', 0.0, 1, 1, 1, 112071]
ตัวแปร List มีความสามารถ/คำสั่งติดตัว ที่ช่วยในการเพิ่มข้อมูลใหม่ให้กับ List คือ
| วิธี | คำอธิบาย |
|---|---|
.append(x) |
เพิ่มข้อมูล x ต่อท้าย List |
.insert(i, x) |
แทรก x ในตำแหน่ง index i |
+ |
เชื่อมต่อ List เข้าด้วยกัน (concatenation) |
* |
เพิ่มข้อมูลให้มีหลายชุดตามจำนวนที่ต้องการ |
Note
ทบทวน: Arithmetic Operators + * (Module 3) — สำหรับ List จะเป็น concatenation และ repetition
ใช้ .append() และ .insert() เพิ่มข้อมูลลงในลิสต์
ใช้ + เชื่อมต่อ List และ * ทำซ้ำ List
| วิธี | คำอธิบาย |
|---|---|
.remove(x) |
ลบข้อมูลที่มีค่า x ตัวแรกที่พบ |
.pop(i) |
ลบข้อมูลที่ตำแหน่ง index i (ไม่ระบุ = ตัวสุดท้าย) |
.clear() |
ลบข้อมูลทั้งหมด |
ใช้ .remove() ลบค่า 5 ค่าแรกที่พบใน List
ถ้า .remove() ค่าที่ไม่มีอยู่ใน List จะเกิดอะไรขึ้น?
ใช้ .pop() ลบข้อมูลจากลิสต์
Important
ไม่ใช่แค่ลบทิ้งนะ แต่ยังสามารถนำค่านั้นไปใช้ประโยชน์ต่อได้
ใช้ .clear() ลบข้อมูลทั้งหมดจากลิสต์
ตัวแปร List มีคำสั่งติดตัวที่ใช้ในการค้นหาข้อมูล คือ
| วิธี | คำอธิบาย |
|---|---|
.index(x) |
ค้นหา x แล้วคืนค่า index ที่พบ (ตัวแรก) |
.index(x, start) |
ค้นหา x ตั้งแต่ตำแหน่ง start |
.count(x) |
นับจำนวน x ทั้งหมดใน List |
ค้นหาว่า 0 ตัวแรกใน List อยู่ที่ index ใด แล้วค้นหา 0 ตัวถัดไป
ค้นหาข้อมูลที่ไม่มีใน List ด้วย .index() จะเกิดอะไรขึ้น?
ใช้ .count() นับจำนวนข้อมูลใน List
| วิธี | คำอธิบาย |
|---|---|
.sort() |
เรียงจากน้อยไปมาก (ascending) |
.reverse() |
กลับลำดับ item จากท้ายมาหน้า |
เรียงลำดับตัวเลขจากน้อยไปมาก แล้วกลับด้านเป็นมากไปน้อย
เรียงลำดับชื่อตาม A-Z แล้วกลับด้านเป็น Z-A
| ฟังก์ชัน | คำอธิบาย |
|---|---|
min(list) |
หาค่าต่ำสุด (minimum) |
max(list) |
หาค่าสูงสุด (maximum) |
sum(list) |
หาค่าผลรวม (summation) |
Note
min(), max(), sum() ไม่ใช่ method ของ List — เป็นฟังก์ชันทั่วไปของ Python
หาค่า len, min, max, sum และค่าเฉลี่ยของข้อมูลในลิสต์
หาค่า maximum แล้วหาว่าอยู่ในตำแหน่ง index ใด
List [...]
[], input().split()index (เริ่มที่ 0)list[start:stop:step]List Methods
.append(), .insert(), +, *.remove(), .pop(), .clear().index(), .count().sort(), .reverse()min(), max(), sum(), len()🏠 259201 — Module 4a | ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเชียงใหม่