Bài 9 — Danh sách (list): một chỗ chứa được nhiều thứ
🎯 Mục tiêu bài học
- Biết tạo một danh sách (list) để chứa nhiều dữ liệu cùng lúc.
- Biết lấy từng phần tử bằng chỉ số (đếm từ 0) và đếm bằng len().
- Biết thêm phần tử bằng append và duyệt cả danh sách bằng vòng lặp for.
Danh sách xếp các món theo thứ tự; mỗi ô có một chỉ số, đếm từ 0.
Vấn đề: Từ trước tới giờ mỗi biến chỉ giữ được một giá trị. Muốn lưu tên 30 bạn trong lớp thì chẳng lẽ tạo 30 biến? Python có một "chiếc hộp nhiều ngăn" gọi là danh sách (list) — một biến chứa được rất nhiều thứ, xếp theo thứ tự.
1. Tạo một danh sách
Ta viết các phần tử trong dấu ngoặc vuông [ ], cách nhau bằng dấu phẩy. Danh sách có thể chứa chữ (đặt trong ngoặc kép) hoặc số.
qua = ["tao", "cam", "xoai", "le"] diem = [8, 10, 7, 9] print(qua)
Đọc thử: in ra cả danh sách: ['tao', 'cam', 'xoai', 'le'].
2. Lấy một phần tử bằng chỉ số
Mỗi phần tử có một số thứ tự gọi là chỉ số, và Python đếm bắt đầu từ 0. Viết qua[0] để lấy phần tử đầu tiên, qua[1] lấy phần tử thứ hai...
print(qua[0]) # tao (phan tu dau tien) print(qua[2]) # xoai
Nhớ kỹ: phần tử đầu tiên là [0] chứ không phải [1]! Đây là chỗ các bạn mới học hay nhầm.
3. Đếm số phần tử bằng len()
Muốn biết danh sách có bao nhiêu phần tử, dùng len(qua) (len là viết tắt của "length" — độ dài).
print(len(qua)) # 4
Mẹo: danh sách có 4 phần tử thì chỉ số chạy từ 0 đến 3 (tức là len - 1 là chỉ số cuối cùng).
4. Thêm phần tử mới bằng append
Lệnh append thêm một phần tử vào cuối danh sách. Nhờ vậy danh sách có thể lớn dần lên.
Lệnh append thêm một món mới vào CUỐI danh sách.
qua.append("chuoi") print(qua) # ['tao', 'cam', 'xoai', 'le', 'chuoi']
Đọc là: "qua chấm append" — nghĩa là bảo danh sách qua tự thêm vào cuối một món mới.
5. Duyệt cả danh sách bằng vòng lặp for
Ghép với vòng lặp for đã học ở Bài 4, ta có thể lần lượt lấy ra từng phần tử để xử lý. Đây là sức mạnh thật sự của danh sách!
for mon in qua: print("Em thich an", mon)
Đọc là: "với mỗi mon trong qua" — máy sẽ chạy khối lệnh một lần cho mỗi phần tử, biến mon lần lượt nhận từng giá trị.
6. Ghi nhớ nhanh
| Câu lệnh | Ý nghĩa |
|---|---|
| ds = [1, 2, 3] | Tạo danh sách chứa 3 số |
| ds[0] | Lấy phần tử đầu tiên (chỉ số đếm từ 0) |
| len(ds) | Đếm số phần tử |
| ds.append(x) | Thêm x vào cuối danh sách |
| for e in ds: | Duyệt lần lượt từng phần tử |
✎ Phần A — Trắc nghiệm (5 câu)
Câu 1. Dùng dấu gì để tạo một danh sách trong Python?
Danh sách viết trong dấu ngoặc vuông [ ], các phần tử cách nhau bằng dấu phẩy.
Câu 2. Với qua = ["tao", "cam", "xoai"], lệnh qua[0] cho ra gì?
Chỉ số đếm từ 0, nên qua[0] là phần tử đầu tiên = "tao".
Câu 3. Danh sách diem = [8, 10, 7, 9] có bao nhiêu phần tử? len(diem) bằng mấy?
len() đếm SỐ phần tử (không cộng giá trị). Có 4 số nên len = 4.
Câu 4. Muốn thêm số 5 vào cuối danh sách ds, ta viết gì?
ds.append(5) thêm số 5 vào cuối danh sách ds.
Câu 5. Đoạn for mon in qua: làm gì?
Vòng for duyệt danh sách: biến mon lần lượt nhận từng phần tử, khối lệnh chạy một lần cho mỗi phần tử.
💻 Phần B — Tự tay thử danh sách
Bấm Chạy để xem danh sách hoạt động! Sau đó thử thêm món em thích bằng append, hoặc đổi các số điểm.
(Kết quả sẽ hiện ở đây sau khi em bấm Chạy...)
Thử thách: Tạo danh sách diem = [8, 10, 7, 9], rồi dùng vòng for cộng dồn tất cả điểm lại (dùng một biến tong = 0 rồi tong = tong + d). Cuối cùng in ra tổng điểm. Em có tính được điểm trung bình không?