Set cơ bản là một tập hợp không có thứ tự của các đối tượng hash-table distinct. Ta có thể dùng set cho các phép toán toán học như hợp, giao, hiệu các tập hợp. Cũng có thể dùng set để loại bỏ trùng lặp từ một tập hợp.
Set không ghi nhận vị trí phần tử. Nó không hỗ trợ indexing, slicing hoặc các thao tác liên quan đến sequence.
Trong Python có hai kiểu set cơ bản: set và frozenset. Kiểu set là mutable, còn frozenset là immutable. Ta có thể thực hiện add(), remove() trên set, nhưng không thể trên frozenset.
Một số phương thức và thao tác liên quan đến set:
Phương thức len(s)
len() trả về số phần tử trong set.
Thao tác (x in s) hoặc (y not in s)
Toán tử in và not in kiểm tra thành viên trong set. (x in s) trả về true nếu x có trong set s. (y not in s) trả về true nếu y không có trong set.
Phương thức isdisjoint(other_set)
Kiểm tra other_set có disjoint với set hiện tại hay không. Nếu có ít nhất một phần tử chung, trả về false.
Phương thức issuperset(other_set)
Trả về true khi tất cả phần tử của other_set cũng có trong set hiện tại. Kiểm tra set hiện tại có phải superset của other_set không.
Phương thức union(other_set)
Trả về set mới chứa tất cả phần tử từ set hiện tại và other_set.
Phương thức intersection(other_set)
Trả về set mới chứa các phần tử chung của set hiện tại và other_set.
Phương thức difference(other_set)
Trả về set chứa các phần tử của set đầu tiên trừ đi phần tử chung của hai set.
Phương thức add(elem)
Thêm phần tử elem vào set.
Phương thức discard(elem)
Xóa phần tử elem khỏi set. Hoạt động khi elem có trong set. Có phương thức remove() khác: nó ném KeyError nếu mục không có trong set.
Ví dụ mã
mySet1 = {1, 2, 5, 6}
mySet2 = {8, 5, 3, 4}
mySet3 = set(range(15)) # tất cả phần tử từ 0 đến 14
mySet4 = {10, 20, 30, 40}
print(set(mySet1.union(mySet2)))
print(set(mySet1.intersection(mySet2)))
print(set(mySet1.difference(mySet2)))
print(mySet3.issuperset(mySet1))
print(mySet1.isdisjoint(mySet4))
mySet4.add(45)
print(mySet4)
mySet4.discard(40)
print(mySet4)
Kết quả
set([1, 2, 3, 4, 5, 6, 8]) set([5]) set([1, 2, 6]) True True set([40, 10, 20, 45, 30]) set([10, 20, 45, 30])