Trong Python, danh sách (list) là một cấu trúc dữ liệu động, có khả năng mở rộng hoặc thu nhỏ tự động. Danh sách có thể chứa nhiều kiểu dữ liệu khác nhau, bao gồm cả danh sách khác. Điều này có thể thực hiện được vì danh sách thực chất lưu trữ các tham chiếu đến vị trí bộ nhớ thay vì lưu trữ trực tiếp giá trị tại các vị trí liên tiếp.

1. Đặc điểm của danh sách trong Python
- Cho phép phần tử trùng lặp
- Có thể thay đổi (mutable) → Thêm, sửa, xóa phần tử một cách linh hoạt
- Có thứ tự (ordered) → Duy trì thứ tự phần tử theo cách chúng được thêm vào
- Truy cập bằng chỉ số (index) → Số thứ tự bắt đầu từ 0
Ví dụ:
a = [10, 20, 15] print(a[0]) # Lấy phần tử đầu tiên a.append(11) # Thêm phần tử mới vào cuối danh sách a.remove(20) # Xóa phần tử có giá trị 20 print(a)
Kết quả:
10 [10, 15, 11]
2. Cách tạo danh sách trong Python
2.1. Sử dụng dấu ngoặc vuông []
# Danh sách số nguyên a = [1, 2, 3, 4, 5] # Danh sách chuỗi b = ['táo', 'chuối', 'nho'] # Danh sách chứa nhiều kiểu dữ liệu c = [1, 'xin chào', 3.14, True] print(a) print(b) print(c)
Kết quả:
[1, 2, 3, 4, 5] ['táo', 'chuối', 'nho'] [1, 'xin chào', 3.14, True]
2.2. Dùng hàm list()
Chúng ta có thể tạo danh sách bằng cách chuyển đổi từ tuple, chuỗi hoặc danh sách khác.
a = list((1, 2, 3, 'xoài', 4.5)) print(a)
Kết quả:
[1, 2, 3, 'xoài', 4.5]
2.3. Tạo danh sách có phần tử lặp lại
a = [2] * 5 # [2, 2, 2, 2, 2] b = [0] * 7 # [0, 0, 0, 0, 0, 0, 0] print(a) print(b)
Kết quả:
[2, 2, 2, 2, 2] [0, 0, 0, 0, 0, 0, 0]
3. Truy cập phần tử trong danh sách
Dùng chỉ số để truy cập phần tử. Python hỗ trợ chỉ mục âm, giúp truy cập từ cuối danh sách.
a = [10, 20, 30, 40, 50] # Truy cập phần tử đầu tiên print(a[0]) # Truy cập phần tử cuối cùng print(a[-1])
Kết quả:
10 50
4. Thêm phần tử vào danh sách
Có ba phương thức phổ biến:
append(x)
: Thêm x vào cuối danh sáchextend(iterable)
: Thêm nhiều phần tử vào cuối danh sáchinsert(i, x)
: Chèn x vào vị trí i
a = [] a.append(10) print("Sau append(10):", a) a.insert(0, 5) print("Sau insert(0, 5):", a) a.extend([15, 20, 25]) print("Sau extend([15, 20, 25]):", a)
Kết quả:
Sau append(10): [10] Sau insert(0, 5): [5, 10] Sau extend([15, 20, 25]): [5, 10, 15, 20, 25]
5. Cập nhật phần tử trong danh sách
Dùng chỉ số để thay đổi giá trị của một phần tử.
a = [10, 20, 30, 40, 50] # Cập nhật phần tử thứ hai a[1] = 25 print(a)
Kết quả:
[10, 25, 30, 40, 50]
6. Xóa phần tử khỏi danh sách
Có ba cách phổ biến:
remove(x)
: Xóa phần tử đầu tiên có giá trị xpop(i)
: Xóa phần tử tại vị trí i (nếu không có, sẽ xóa phần tử cuối)del list[i]
: Xóa phần tử tại vị trí i
a = [10, 20, 30, 40, 50] a.remove(30) print("Sau remove(30):", a) popped_val = a.pop(1) print("Phần tử bị xóa:", popped_val) print("Sau pop(1):", a) del a[0] print("Sau del a[0]:", a)
Kết quả:
Sau remove(30): [10, 20, 40, 50] Phần tử bị xóa: 20 Sau pop(1): [10, 40, 50] Sau del a[0]: [40, 50]
7. Duyệt danh sách (Iteration)
Dùng vòng lặp for để lặp qua các phần tử trong danh sách.
a = ['táo', 'chuối', 'nho'] for item in a: print(item)
Kết quả:
táo chuối nho
8. Danh sách lồng nhau (Nested List)
Danh sách có thể chứa danh sách khác, giúp biểu diễn dữ liệu dạng bảng.
matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] # Truy cập phần tử hàng 2, cột 3 print(matrix[1][2])
Kết quả:
6
Tóm tắt
Hành động | Phương thức |
---|---|
Thêm phần tử | append() , extend() , insert() |
Xóa phần tử | remove() , pop() , del |
Cập nhật phần tử | Sử dụng chỉ số list[i] = new_value |
Truy cập phần tử | list[i] , list[-i] |
Lặp qua danh sách | for loop |
Danh sách là một trong những cấu trúc dữ liệu quan trọng nhất trong Python, giúp lưu trữ và xử lý dữ liệu một cách hiệu quả. 🚀