BÀI 22: KIỂU DỮ LIỆU DANH SÁCH TRONG PYTHON
"List - Lưu trữ nhiều giá trị trong một biến"
🎯 A. YÊU CẦU CẦN ĐẠT
- Hiểu và sử dụng được kiểu dữ liệu danh sách (list) trong Python
Nắm được khái niệm, đặc điểm và cách sử dụng list để lưu trữ dữ liệu.
- Biết cách khởi tạo, truy cập và thay đổi các phần tử trong danh sách
Thực hành tạo list, truy cập theo chỉ số và cập nhật giá trị.
- Thực hành dùng vòng lặp for để duyệt danh sách
Sử dụng for để lặp qua từng phần tử trong danh sách.
- Sử dụng các phương thức quan trọng của danh sách
Làm quen với append(), del(), len() và các phương thức khác.
📋 B.1. KIỂU DỮ LIỆU DANH SÁCH LÀ GÌ?
Danh sách (list) là kiểu dữ liệu dùng để lưu trữ nhiều giá trị trong Python.
📌 Cú pháp khởi tạo danh sách:
<tên list> = [<v₁>, <v₂>, ..., <vₙ>]
Trong đó các giá trị <v> có thể có kiểu dữ liệu khác nhau (số nguyên, số thực, xâu ký tự...). Ta có thể truy cập từng phần tử của danh sách thông qua chỉ số. Chỉ số bắt đầu từ 0.
📝 Ví dụ 1: Tạo danh sách
🔍 Minh họa danh sách A = [1, 2, 3, 4, 5]
🔧 B.2. THAO TÁC VỚI DANH SÁCH
a) Tạo danh sách rỗng
• Danh sách rỗng
[] không chứa phần tử nào• Thường dùng để thêm phần tử sau bằng
append()
a.1) Lệnh len() - Đếm số phần tử
✅ Kiểm tra rỗng: len(A) == 0 nghĩa là danh sách rỗng
✅ Dùng với range(): range(len(A)) để duyệt qua tất cả chỉ số
✅ Tính toán: Dùng trong các công thức như trung bình = sum(A) / len(A)
b) Thay đổi giá trị trong danh sách
c) Xóa phần tử trong danh sách
d) Ghép danh sách
+ được sử dụng để nối hai danh sách thành một.
🎮 Thử nghiệm thay đổi danh sách
📌 Kiến thức cần nhớ: Truy cập phần tử
Cú pháp truy cập phần tử:
<danh sách>[<chỉ số>]
• Chỉ số của danh sách bắt đầu từ 0 đến len() - 1
• len() là lệnh tính độ dài danh sách
✏️ BÀI TẬP LUYỆN TẬP
📝 Câu 1. Cho danh sách:
Hãy cho biết giá trị các phần tử:
📝 Câu 2. Giả sử A là một danh sách các số, mỗi lệnh sau thực hiện công việc gì?
A = A + [10]
del A[0]
A = [100] + A
A = A[1] * 25
🔄 B.3. DUYỆT DANH SÁCH BẰNG VÒNG LẶP FOR
📝 Ví dụ 2: In ra tất cả các phần tử trong danh sách
•
len(A) trả về số phần tử trong danh sách (5)•
range(len(A)) tạo dãy số từ 0 đến 4• Vòng lặp duyệt qua các chỉ số và in ra giá trị tương ứng
📝 Ví dụ 3: In một phần danh sách
🔍 Duyệt từ chỉ số 2 đến 4
range(2, 5) tạo dãy số từ 2 đến 4 (không bao gồm 5), nên in ra B[2], B[3], B[4].
✏️ BÀI TẬP LUYỆN TẬP
📝 Câu 1. Giải thích các lệnh ở mỗi câu sau thực hiện công việc gì?
📝 Câu 2. Cho dãy các số nguyên A, viết chương trình in ra các số chẵn của A.
• Số chẵn là số chia hết cho 2 (A[i] % 2 == 0)
• Duyệt qua từng phần tử và kiểm tra điều kiện
• In ra các số thỏa mãn điều kiện
➕ B.4. THÊM PHẦN TỬ VÀO DANH SÁCH
📌 Cú pháp các lệnh:
<danh sách>.<phương thức>
Lệnh thêm phần tử vào cuối danh sách là <danh sách>.append()
📝 Ví dụ 4: Thêm phần tử vào danh sách
📝 Ví dụ 5: Kết hợp del() và append()
🔍 Quá trình biến đổi danh sách
Bước 1: Danh sách ban đầu
Bước 2: Sau append(100)
Bước 3: Sau del A[1]
✏️ BÀI TẬP VỀ APPEND() VÀ DEL()
📝 Câu 1. Sau khi thêm một phần tử vào danh sách A bằng lệnh append() thì độ dài danh sách A thay đổi như thế nào?
📝 Câu 2. Danh sách A sẽ như thế nào sau các lệnh sau?
🛠️ CÁC PHƯƠNG THỨC QUAN TRỌNG CỦA DANH SÁCH
•
len() là hàm → Viết: len(A)•
append() là phương thức → Viết: A.append(3)•
del là từ khóa → Viết: del A[1]
💻 C. THỰC HÀNH
Khởi tạo, nhập dữ liệu, thêm phần tử cho danh sách
📝 Nhiệm vụ 1: Nhập số n từ bàn phím, sau đó nhập danh sách n tên các bạn lớp em và in ra danh sách các tên đó, mỗi tên trên một dòng.
• Chương trình yêu cầu nhập số tự nhiên n, sau đó nhập từng tên trong danh sách
• Dùng phương thức
append() để đưa dần vào danh sách• Chú ý: Vì vùng giá trị của lệnh
range(n) bắt đầu từ 0 nên trong thông báo nhập cần viết là str(i+1) để bắt đầu từ 1
📋 Chương trình mẫu:
💡 Giải thích từng bước:
Bước 1: Tạo danh sách rỗng dsLop = []
Bước 2: Nhập số học sinh n
Bước 3: Vòng lặp từ 0 đến n-1, nhập từng tên
Bước 4: Dùng append() thêm tên vào danh sách
Bước 5: In từng phần tử trong danh sách
•
str(i+1) chuyển chỉ số từ 0 thành 1, 2, 3...•
len(dsLop) trả về số phần tử trong danh sách
💻 THỰC HÀNH (tiếp)
📝 Nhiệm vụ 2: Nhập một dãy số từ bàn phím. Tính tổng, trung bình của dãy và in dãy số trên một hàng ngang.
• Tương tự nhiệm vụ 1, chỉ khác là nhập số nguyên nên dùng lệnh
int() để chuyển đổi dữ liệu• Tính tổng trong quá trình nhập để tối ưu chương trình
📋 Chương trình mẫu:
💡 Giải thích từng bước:
Bước 1: Khởi tạo danh sách rỗng A = [] và biến tổng T = 0
Bước 2: Nhập số phần tử n
Bước 3: Vòng lặp nhập từng số, cộng vào tổng và thêm vào danh sách
Bước 4: In dãy số trên một hàng (dùng end=" ")
Bước 5: In tổng và trung bình
•
T = T + num tích lũy tổng trong quá trình nhập•
end=" " in các số trên cùng một hàng•
print() xuống dòng sau khi in xong dãy số• Trung bình = Tổng / Số phần tử
✏️ D. LUYỆN TẬP
📝 Câu 1. Viết lệnh xóa phần tử cuối cùng của danh sách A bằng lệnh del.
📝 Câu 2. Có thể thêm một phần tử vào đầu danh sách được không? Nếu có thì nêu cách thực hiện.
🎯 E. VẬN DỤNG
📝 Bài toán: Cho dãy số A. Viết chương trình tìm giá trị và chỉ số của phần tử lớn nhất của A. Tương tự với bài toán tìm phần tử nhỏ nhất.
• Khởi tạo giá trị max = A[0] và vị trí vtMax = 0
• Duyệt qua từng phần tử, so sánh với max
• Nếu A[i] > max, cập nhật max = A[i] và vtMax = i
• Tương tự cho bài toán tìm min
HOÀN THÀNH BÀI HỌC!
Bài 22: Kiểu dữ liệu danh sách trong Python
📚 Tóm tắt kiến thức:
A[i] truy cập phần tử tại vị trí i
for i in range(len(A))
