Giai đoạn 1 · 30 phút · Miễn phí
Danh sách (list)
Lưu nhiều giá trị trong một biến: tạo list, chỉ số, append, len, duyệt list, sum, max, min, split().
Mục tiêu
- Tạo list và truy cập phần tử bằng chỉ số
- Thêm, sửa phần tử
- Duyệt list bằng for
- Dùng len, sum, max, min
- Đọc nhiều số trên một dòng bằng split()
Vì sao cần học
Lớp học có 40 học viên, không ai tạo 40 biến. List giữ cả dãy giá trị trong một biến và xử lý chúng bằng vòng lặp.
Khái niệm
List viết trong ngoặc vuông: diem = [8, 6, 9].
Chỉ số bắt đầu từ 0: diem[0] là 8. diem[-1] là phần tử cuối. Truy cập chỉ số không tồn tại gây IndexError.
append(x) thêm x vào cuối. len(ds) là số phần tử. sum, max, min tính tổng, lớn nhất, nhỏ nhất.
input().split() tách một dòng thành list các chuỗi; dùng [int(x) for x in input().split()] hoặc list(map(int, input().split())) để được list số.
Cú pháp
ds = [1, 2, 3]
ds.append(4)
print(ds[0], len(ds))
for x in ds:
print(x)
Ví dụ
diem = list(map(int, input().split()))
print("Số bài:", len(diem))
print("Cao nhất:", max(diem))
print("Trung bình:", sum(diem) / len(diem))Dữ liệu nhập:
8 6 10
Kết quả:
Số bài: 3 Cao nhất: 10 Trung bình: 8.0
Giải thích từng dòng
- Dòng 1: tách "8 6 10" thành ["8", "6", "10"], đổi từng phần tử sang số: [8, 6, 10].
- Dòng 2: len cho 3.
- Dòng 3: max cho 10.
- Dòng 4: 24 / 3 = 8.0 (phép / cho số thực).
Lỗi thường gặp
ds = [1, 2, 3]
print(ds[3])List có 3 phần tử, chỉ số chỉ từ 0 đến 2: IndexError.
print(ds[2]) hoặc ds[-1]ds = input().split()
print(sum(ds))Các phần tử vẫn là chuỗi, sum báo TypeError.
ds = list(map(int, input().split()))ds.append(4, 5)append chỉ nhận một giá trị.
ds.append(4) rồi ds.append(5), hoặc ds.extend([4, 5])Tóm tắt
- List trong ngoặc vuông, chỉ số từ 0.
- append, len, sum, max, min là công cụ hằng ngày.
- split() + map(int, ...) để đọc nhiều số trên một dòng.
Viết code ngay trên trình duyệt, máy chấm chạy Python thật và chỉ đúng dòng sai bằng tiếng Việt.
Vào luyện tập miễn phí