Chúng ta cùng khám phá Bài 9: Danh sách (List) và xử lý dữ liệu dạng tập hợp – đây là bước chuyển lớn từ làm việc với từng giá trị riêng lẻ sang xử lý nhiều giá trị cùng lúc, cực kỳ quan trọng nếu bạn muốn phân tích dữ liệu, lặp qua nhiều phần tử, lưu trữ hàng loạt kết quả, và còn nhiều hơn thế.
Mục tiêu bài học
- Hiểu khái niệm danh sách (
list
) trong Python - Biết cách tạo, truy cập, sửa đổi, xóa và lặp qua danh sách
- Làm quen với một số hàm và phương thức xử lý danh sách
- Nắm cách dùng
list
để xử lý dữ liệu tập hợp linh hoạt
Danh sách (List) là gì?
Danh sách là một cấu trúc dữ liệu chứa nhiều phần tử, có thể thuộc cùng hoặc khác kiểu, được đặt trong dấu ngoặc vuông []
và cách nhau bởi dấu phẩy ,
.
Ví dụ:
ds_so = [1, 2, 3, 4, 5]
ds_ten = ["An", "Bình", "Cường"]
ds_tong_hop = [1, "hai", 3.0, True]
Danh sách rất phổ biến – dùng để lưu trữ nhiều giá trị dưới một tên biến duy nhất.
Truy cập phần tử trong danh sách
Truy cập bằng chỉ số (index) – bắt đầu từ 0
ten = ["Lan", "Mai", "Hà"]
print(ten[0]) # Lan
print(ten[-1]) # Hà (phần tử cuối)
Thay đổi giá trị trong danh sách
ten[1] = "Linh"
print(ten) # ['Lan', 'Linh', 'Hà']
Duyệt qua danh sách với for
for t in ten:
print("Xin chào", t)
Các thao tác phổ biến với danh sách
a. Thêm phần tử
ds = [1, 2, 3]
ds.append(4) # Thêm vào cuối
ds.insert(1, 10) # Chèn 10 vào vị trí số 1
b. Xóa phần tử
ds.remove(2) # Xóa giá trị 2 đầu tiên tìm thấy
ds.pop() # Xóa phần tử cuối cùng
ds.pop(1) # Xóa phần tử tại chỉ số 1
del ds[0] # Xóa phần tử tại chỉ số 0
c. Kiểm tra tồn tại
if "Lan" in ten:
print("Có Lan trong danh sách")
d. Sắp xếp danh sách
so = [5, 1, 9, 2]
so.sort() # Sắp xếp tăng dần
so.reverse() # Đảo ngược danh sách
e. Tạo danh sách từ đầu vào
ds = []
for i in range(5):
so = int(input(f"Nhập số thứ {i+1}: "))
ds.append(so)
print("Danh sách bạn đã nhập:", ds)
Một số hàm và thao tác hữu ích
Hàm / Phương thức | Mô tả |
---|---|
len(ds) | Trả về số phần tử |
sum(ds) | Tính tổng các phần tử số |
max(ds) / min(ds) | Giá trị lớn nhất / nhỏ nhất |
list(range(n)) | Tạo danh sách số từ 0 đến n-1 |
sorted(ds) | Trả về bản sao đã sắp xếp |
Gộp, sao chép, cắt danh sách
a. Gộp danh sách
a = [1, 2]
b = [3, 4]
c = a + b # [1, 2, 3, 4]
b. Nhân danh sách
a = ["Hi"] * 3 # ['Hi', 'Hi', 'Hi']
c. Cắt danh sách (slice)
ten = ["An", "Bình", "Chi", "Dũng", "Hà"]
print(ten[1:4]) # ['Bình', 'Chi', 'Dũng']
print(ten[:3]) # ['An', 'Bình', 'Chi']
print(ten[-2:]) # ['Dũng', 'Hà']
Bài tập luyện tập
Bài tập 1: Nhập vào 5 số, in ra:
- Danh sách số vừa nhập
- Tổng, trung bình, lớn nhất, nhỏ nhất
Bài tập 2: Nhập danh sách tên học sinh. In ra:
- Tổng số học sinh
- Danh sách in hoa toàn bộ
- Danh sách sắp xếp theo tên
Bài tập 3: Viết chương trình cho phép người dùng thêm, xóa tên trong danh sách, và in danh sách ra sau mỗi thao tác.
Bài tập 4: Tạo danh sách điểm số, đếm có bao nhiêu bạn đạt >= 8.0
Ghi nhớ
- Danh sách là kiểu dữ liệu dạng tập hợp có thứ tự, có thể thay đổi
- Bạn có thể duyệt, cắt, nối, thêm, xóa và xử lý dữ liệu rất linh hoạt
- Dùng
list
giúp bạn dễ dàng quản lý tập dữ liệu số lượng lớn trong lập trình
Kết luận
Bạn vừa học một trong những cấu trúc dữ liệu quan trọng nhất trong Python – list. Nó giúp bạn làm việc với nhiều dữ liệu một cách gọn gàng và hiệu quả, và là tiền đề để hiểu sâu hơn các cấu trúc khác như tuple, set, dictionary và mảng trong các ngôn ngữ khác.
Thảo luận