Bài 25. Dữ liệu kiểu set
Set là một tập hợp các phần tử không có thứ tự. Mọi phần tử trong set là duy nhất (không trùng lặp) và bất biến (không thể thay đổi). Phần tử của set có thể có kiểu dữ liệu bất kỳ trừ list và chính nó.
Khởi tạo set
Xét thêm các ví dụ sau để thấy set không chứa phần tử trùng lặp.
Lưu ý: Ta không thể khởi tạo một set rỗng như cách làm với list và tuple. Ví dụ:
Thêm, sửa, xóa phần tử set
Thêm
Xóa
Sử dụng phương thức discard() và remove(). Lưu ý phương thức remove() sẽ không hoạt động nếu phần tử chỉ định không tồn tại trong set.
Dùng phương thức pop(), clear()
Các phép toán trên set
Các phép toán trên set chính là các phép toán trên tập hợp. Xét ví dụ sau:
Phương thức của set
Phương thức | Chú giải |
Cộng thêm phần tử | |
Xóa rỗng set | |
Sao chép set | |
Phần khác (phép - ) | |
Trả về set đã xóa hết các phần tử giống set khác | |
Xóa bỏ phần tử đầu của set | |
Phần giao 2 set (phép &) | |
Trả về phần giao 2 set | |
| |
| |
| |
Xóa phần tử đầu của set (sẽ báo lỗi nếu xóa phần tử không có trong set) | |
Xóa phần tử của set (sẽ báo lỗi nếu xóa phần tử không có trong set) | |
Trả về set là phần khác đối xứng của 2 xét khác | |
Trả về set là phần khác đối xứng của 2 set khác | |
Trả về phần hợp 2 set (phép hợp | ) | |
Trả về một set là hợp của 2 set |
Hàm dựng sẵn cho set
Các hàm dựng sẵn như all(), any(), enumerate(), len(), max(), min(), sorted(), sum(), v.v. thường được sử dụng với các set để thực hiện các tác vụ khác nhau.
Function | Description |
| |
| |
Trả về một đối tượng liệt kê. Nó chứa chỉ số và giá trị cho tất cả các phần tử của set dưới dạng từng cặp. | |
Số lượng phần tử của set | |
Phần tử lớn nhất của set | |
Phần tử nhỏ nhất của set | |
Trả về một list gồm các phần tử của set đã được sắp xếp | |
Tổng các phần tử của set |
Frozenset
Frozenset có các đặc điểm của set nhưng không cho phép thêm-sửa-xóa phần tử. Nếu tuple là dạng bất biến của list thì frozenset là dạng bất biến của set.
frozenset được khởi tạo bằng hàm frozenset() và được hỗ trợ các phương thức như: copy(), difference(), intersection(), isdisjoint(), issubset(), issuperset(), symmetric_difference() and union().
Dĩ nhiên là không làm việc với remove(), discard...
Ví dụ
Thao tác khác
Kiểm tra phần tử chứa trong set
Lặp theo phần tử set
Last updated