Tin Học KHMT
Ôn tập Tin học THPT › Tin học 10 › Bài 26
Tin học 10

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.

Chủ đề F · Lập trình, Thuật toán & CTDL (KHMT) - đọc khoảng 11 phút · 25 câu luyện tập trong ứng dụng

Tương ứng sách giáo khoa
  • 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
Xem bảng đối chiếu cả bộ →

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

  1. 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ủa a; a.append(x) thêm phần tử x và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ỗi IndexError.

Thuật ngữ tiếng Anh trong bài

Tiếng AnhĐọc làNghĩa
listlítdanh sách
Một dãy nhiều giá trị xếp hàng, giống hộp bút có nhiều ô.
indexIN-đécchỉ 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.
lenlenhà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.

Câu 1 · Nhận biết
Trong Python, cú pháp nào tạo ra một danh sách gồm ba số 1, 2, 3?
  1. a = (1, 2, 3)
  2. a = [1, 2, 3]
  3. a = {1, 2, 3}
  4. a = 1, 2, 3;
Đáp án: B - Danh sách được tạo bằng cặp ngoặc vuông [...], 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.
Câu 2 · Nhận biết
Cho a = [10, 20, 30]. Giá trị của a[0] là bao nhiêu?
  1. 30
  2. 20
  3. 10
  4. Lỗi, vì chỉ số phải bắt đầu từ 1
Đáp án: C - Python đánh chỉ số của danh sách bắt đầu từ 0, nên 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.
Câu 3 · Thông hiểu
Cho a = [5, 3, 8]. Sau khi thực hiện lệnh a.append(2), danh sách a trở thành gì?
  1. [5, 3, 8, 2]
  2. [2, 5, 3, 8]
  3. [5, 3, 2, 8]
  4. [5, 3, 8] (không đổi)
Đáp án: A - 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].
Câu Đúng/Sai (Phần II) · Thông hiểu
Cho biết mỗi phát biểu sau đúng hay sai:
  • 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ị x vào đầu danh sách a.Sai
  • c)len(a) trả về số phần tử hiện có trong danh sách a.Đúng
  • d)Nếu danh sách a có 5 phần tử, thì a[5] là phần tử hợp lệ cuối cùng của a.Sai
Vì sao:
  • (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êm x và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ó trong a.
  • (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ỗi IndexError.

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.

Mở bài 26 trong ứng dụng

Phần học miễn phí, không cần tạo tài khoản.