1. Khởi động (Engagement)
Em đã được học những kiểu dữ liệu cơ bản của Python như số nguyên, số thực, xâu kí tự, kiểu dữ liệu logic. Tuy nhiên, khi em cần lưu một dãy các số hay một danh sách học sinh thì cần kiểu dữ liệu dạng danh sách (còn gọi là dãy hay mảng).
💡 Câu hỏi suy ngẫm: Em hãy tìm một số dữ liệu kiểu danh sách thường gặp trên thực tế.
Ví dụ:
- Danh sách điểm của các học sinh trong lớp
- Danh sách các mặt hàng trong siêu thị
- Danh sách bài hát trong playlist
- Danh sách bạn bè trong danh bạ điện thoại
Kiểu dữ liệu danh sách được dùng nhiều nhất trong Python là kiểu list.
2. Hình thành kiến thức (Knowledge)
1. Kiểu dữ liệu danh sách (List)
List là kiểu dữ liệu danh sách (dãy, mảng) trong Python. Tạo list bằng lệnh gán với các phần tử trong cặp dấu ngoặc [].
a) Khởi tạo danh sách
Cú pháp:
Đặc điểm:
- Các phần tử của danh sách có thể có các kiểu dữ liệu khác nhau
- Các giá trị cách nhau bởi dấu phẩy
- Có thể tạo danh sách rỗng
Ví dụ:
b) Truy cập phần tử
Truy cập hoặc thay đổi giá trị của từng phần tử thông qua chỉ số:
Quy tắc quan trọng:
- 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
Ví dụ:
2. Duyệt các phần tử của danh sách
Hoạt động 2: Dùng lệnh for để duyệt danh sách
Quan sát các lệnh sau để biết cách dùng lệnh for duyệt lần lượt các phần tử của một danh sách.
Ví dụ 1: Duyệt và in ra từng phần tử của danh sách
Ví dụ 2: Duyệt và in một phần của danh sách
Giải thích:
- Hai ví dụ trên cho thấy dùng lệnh for kết hợp với lệnh range() để duyệt từng phần tử của danh sách
- Có thể duyệt lần lượt các phần tử của danh sách bằng lệnh for kết hợp với vùng giá trị của lệnh range()
Bài tập thực hành:
Bài tập 1: Giải thích các lệnh ở mỗi câu sau thực hiện công việc gì?
Bài tập 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.
Gợi ý:
3. Thêm phần tử vào danh sách
Python có những lệnh đặc biệt để thêm phần tử vào một danh sách. Các lệnh này được thiết kế riêng cho kiểu dữ liệu danh sách và còn được gọi là phương thức (method) của danh sách.
Hoạt động 3: Tìm hiểu lệnh thêm phần tử cho danh sách
Quan sát các lệnh sau đây để biết cách thêm phần tử vào một danh sách bằng phương thức append().
Ví dụ: Thêm phần tử vào cuối danh sách
Chú ý cách dùng phương thức append():
- Gõ tên biến danh sách, dấu ".", sau đó gõ append
- Ví dụ:
dsLop.append(name)
Tổng kết về phương thức:
- Python có một số lệnh dành riêng (phương thức) cho dữ liệu kiểu danh sách
- Cú pháp các lệnh đó như sau:
tên_danh_sách.tên_phương_thức() - Lệnh thêm phần tử vào cuối danh sách là
.append()
Câu hỏi suy ngẫm:
- 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?
- Danh sách A sẽ như thế nào sau các lệnh sau?
Lưu ý quan trọng:
- Phương thức append() luôn thêm phần tử vào CUỐI danh sách
- Khi duyệt danh sách bằng for + range(), chỉ số chạy từ 0 đến len()-1
- range(start, end) chạy từ start đến end-1
4. Thay đổi và xóa phần tử
a) Thay đổi giá trị phần tử
Sử dụng lệnh gán để thay đổi giá trị từng phần tử:
b) Xóa phần tử
Sử dụng lệnh del để xóa một phần tử của danh sách:
c) Các phép toán với danh sách
- len(A): Tính độ dài của danh sách
- Phép ghép (+): Ghép hai danh sách
Ví dụ:
3. Luyện tập (Practice)
Bài tập thực hành
Bài tập 1:
Cho danh sách A = [1, 0, "One", 9, 15, "Two", True, False]. Hãy cho biết giá trị các phần tử: a) A[0] b) A[2] c) A[7] d) A[len(A)]
Bài tập 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 = A + [10] b) del A[0] c) A = [100] + A d) A = A[1]*25
Bài tập 3:
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.
Gợi ý:
Bài tập 4:
Viết lệnh xóa phần tử cuối cùng của danh sách A bằng lệnh del.
Thực hành tại máy:
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 mẫu:
4. Vận dụng (Application)
Bài tập vận dụng
Bài tập 1: Tính tổng và trung bình dãy số
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.
Chương trình mẫu:
Bài tập 2: Tìm phần tử lớn nhất
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.
Gợi ý:
Bài tập 3: Sắp xếp danh sách
Viết chương trình nhập danh sách các số và sắp xếp theo thứ tự tăng dần.
Gợi ý: Có thể dùng phương thức sort() của danh sách: A.sort()
Thảo luận:
- Lợi ích của việc dùng danh sách so với dùng nhiều biến riêng lẻ?
- Khi nào nên dùng chỉ số âm trong danh sách?
- Phương thức append() có tác dụng gì?
Ghi nhớ kiến thức 🎯
- ✅ List là kiểu dữ liệu danh sách trong Python, tạo bằng [].
- ✅ Chỉ số bắt đầu từ 0, truy cập bằng danh_sách[chỉ_số].
- ✅ len() tính độ dài danh sách.
- ✅ append() thêm phần tử vào cuối danh sách.
- ✅ del xóa phần tử tại chỉ số cụ thể.
- ✅ for + range(len()) dùng để duyệt danh sách.