Bài 26. Danh sách (list)
Khi cần lưu nhiều giá trị cùng loại - chẳng hạn điểm kiểm tra của cả một nhóm người - thay vì tạo hàng loạt biến riêng lẻ, Python cho một kiểu dữ liệu gom tất cả vào một chỗ: danh sách (list). Bài học này giới thiệu cách tạo, truy cập, sửa và duyệt qua một danh sách.
- Cánh DiềuTin học 10 - Chủ đề F · Bài 14. Kiểu dữ liệu danh sách - Xử lí danh sáchtr. 101
- Kết nối tri thứcTin học 10 - Bài 22. Kiểu dữ liệu danh sáchtr. 111–114
Bắt đầu bằng một hình dung
Hãy tưởng tượng một dãy ngăn tủ nhỏ đặt cạnh nhau, mỗi ngăn được đánh số liên tiếp bắt đầu từ 0: ngăn số 0, ngăn số 1, ngăn số 2, và cứ thế tiếp tục. Mỗi ngăn giữ đúng một món đồ. Nhờ cách đánh số này, ta không cần nhớ tên hay hình dạng của từng món - chỉ cần nói “lấy món ở ngăn số 2” là biết chính xác cần mở ngăn nào.
Trong lập trình cũng có nhu cầu tương tự: khi cần lưu nhiều giá trị cùng lúc - ví dụ điểm kiểm tra của cả một nhóm người - nếu tạo một biến riêng cho từng giá trị thì rất cồng kềnh. Python giải quyết việc này bằng một kiểu dữ liệu hoạt động giống hệt dãy ngăn tủ trên: danh sách (list) - nhiều giá trị được gom vào một cái tên duy nhất, mỗi giá trị nằm ở một “ngăn” (chỉ số) riêng để lấy ra khi cần.
Nội dung bài học
- Danh sách là gì?
Tóm tắt lý thuyết cần nhớ
- Danh sách (
list) lưu nhiều giá trị trong một biến duy nhất; viết trong cặp ngoặc vuông[...], các phần tử cách nhau bởi dấu phẩy. - Chỉ số của danh sách bắt đầu từ 0: phần tử đầu tiên là
a[0], phần tử cuối cùng làa[len(a) - 1]; có thể đọc hoặc sửa phần tử qua chỉ số (a[i],a[i] = x). len(a)cho biết số phần tử củaa;a.append(x)thêm phần tửxvào cuối danh sách.- Dùng
for phan_tu in a:để duyệt qua từng phần tử - cách chuẩn để tính tổng, trung bình, đếm số lượng,…; truy cập chỉ số vượt phạm vi sẽ gây lỗiIndexError.
Thuật ngữ tiếng Anh trong bài
| Tiếng Anh | Đọc là | Nghĩa |
|---|---|---|
| list | lít | danh sách Một dãy nhiều giá trị xếp hàng, giống hộp bút có nhiều ô. |
| index | IN-đéc | chỉ số Số thứ tự của một phần tử. |
| append | ơ-PEN-đờ | thêm phần tử vào cuối danh sách Thêm một phần tử mới vào cuối một danh sách đang có - như xếp thêm một bạn vào cuối hàng đang đứng. |
| len | len | hàm lấy độ dài (len) Cho biết một danh sách hay xâu chữ có bao nhiêu phần tử. |
Câu hỏi trắc nghiệm có đáp án
Mấy câu mẫu để bạn tự kiểm tra ngay. Trong ứng dụng, bài này có đủ 25 câu, chấm điểm tự động và giải thích từng câu sai.
a = (1, 2, 3)a = [1, 2, 3]a = {1, 2, 3}a = 1, 2, 3;
[...], các phần tử cách nhau bởi dấu phẩy, nên cú pháp đúng là a = [1, 2, 3]. Ngoặc tròn (...) tạo ra kiểu tuple, ngoặc nhọn {...} tạo ra kiểu set - đều không phải danh sách; còn cú pháp ở phương án còn lại không hợp lệ trong Python.a = [10, 20, 30]. Giá trị của a[0] là bao nhiêu?- 30
- 20
- 10
- Lỗi, vì chỉ số phải bắt đầu từ 1
a[0] là phần tử ĐẦU TIÊN của danh sách, tức giá trị 10 - không phải phần tử thứ hai hay thứ ba, và chỉ số cũng không bắt đầu từ 1.a = [5, 3, 8]. Sau khi thực hiện lệnh a.append(2), danh sách a trở thành gì?[5, 3, 8, 2][2, 5, 3, 8][5, 3, 2, 8][5, 3, 8](không đổi)
a.append(x) luôn thêm giá trị mới vào CUỐI danh sách, không chèn vào đầu hay xen giữa. Vì vậy sau a.append(2), danh sách trở thành [5, 3, 8, 2].- a)Trong Python, chỉ số của phần tử đầu tiên trong một danh sách là 0.Đúng
- b)Lệnh
a.append(x)chèn giá trịxvào đầu danh sácha.Sai - c)
len(a)trả về số phần tử hiện có trong danh sácha.Đúng - d)Nếu danh sách
acó 5 phần tử, thìa[5]là phần tử hợp lệ cuối cùng củaa.Sai
- (a) Đúng - Python đánh chỉ số bắt đầu từ 0, nên phần tử đầu tiên luôn là
a[0]. - (b) Sai -
a.append(x)thêmxvào CUỐI danh sách, không phải đầu. - (c) Đúng -
len(a)luôn cho đúng số phần tử đang có tronga. - (d) Sai - danh sách 5 phần tử có chỉ số hợp lệ từ 0 đến 4;
a[5]đã vượt phạm vi và sẽ gây lỗiIndexError.
Thử ngay: minh hoạ từng bước
Bấm từng bước để tự xem cơ chế hoạt động, hoặc bấm “Tự chạy” cho nó tiến mỗi giây một lần. Đổi được dữ liệu đầu vào - không cần đăng nhập.
Học trọn bài này trong ứng dụng
Bài giảng đầy đủ, 25 câu luyện tập chấm tự động, thi thử đúng cấu trúc đề tốt nghiệp (24 trắc nghiệm + 4 Đúng/Sai), bài thực hành máy tự chấm và gia sư AI giải thích chỗ sai.
Phần học miễn phí, không cần tạo tài khoản.
Bài liên quan - Lập trình, Thuật toán & CTDL (KHMT)
Cùng mạch kiến thức với bài này, học nối tiếp cho chắc phần lí thuyết.