Python cung cấp 4 cấu trúc dữ liệu container chính, mỗi loại có đặc điểm riêng phù hợp bài toán khác nhau.
1. List - Danh sách
Đặc điểm: Có thứ tự, mutable (thay đổi được), cho phép trùng lặp.
my_list = ["car", "bus", "truck"]
print(my_list[1]) # bus
my_list[2] = "van" # sửa
for x in my_list: print(x)
Phương thức List chính
| Method | Mô tả |
|---|---|
| append(x) | Thêm x vào cuối |
| extend(iterable) | Mở rộng bằng iterable |
| insert(i, x) | Chèn x tại vị trí i |
| remove(x) | Xóa phần tử đầu tiên bằng x |
| pop([i]) | Xóa và trả phần tử i (mặc định cuối) |
| clear() | Xóa tất cả |
| index(x) | Vị trí đầu tiên của x |
| count(x) | Số lần xuất hiện x |
| sort() | Sắp xếp tại chỗ |
| reverse() | Đảo ngược tại chỗ |
| copy() | Sao chép nông (shallow) |
2. Dict - Từ điển
Đặc điểm: Key-value, unordered (Python 3.7+ giữ thứ tự insert), key duy nhất, mutable.
student = {"Aadrika": 1, "Adwaita": 9, "Sakya": 11}
print(student["Adwaita"]) # 9
student["Krishna"] = 111 # thêm
del student["Aadrika"] # xóa
3. Tuple - Bộ
Đặc điểm: Có thứ tự, immutable (bất biến), hashable (dùng làm key dict).
my_tuple = ("car", "bus", "truck")
print(my_tuple[1]) # bus
# my_tuple[2] = "van" # TypeError!
Phương thức: count(x), index(x).
4. Set - Tập hợp
Đặc điểm: Không thứ tự, không trùng lặp, mutable, hỗ trợ phép toán tập hợp.
A = {"AA", "BB", "CC"}
B = {"MM", "NN"}
A.add("DD")
print(A | B) # union
print(A & B) # intersection
print(A - B) # difference
print(A ^ B) # symmetric difference
Bảng so sánh
| List | Tuple | Dict | Set | |
|---|---|---|---|---|
| Thứ tự | Có | Có | Có (3.7+) | Không |
| Mutable | Có | Không | Có | Có |
| Trùng lặp | Có | Có | Key: không | Không |
| Index truy cập | Có | Có | Key | Không |
| Hashable | Không | Có | Không | Không |
Chuyển đổi
list((1,2,3)) # [1,2,3]
tuple([1,2,3]) # (1,2,3)
set([1,2,2,3]) # {1,2,3}
dict([('a',1),('b',2)]) # {'a':1,'b':2}