Python - Bộ
Về mặt toán học, một tập hợp là một tập hợp các mục không theo bất kỳ thứ tự cụ thể nào. Một tập hợp Python tương tự như định nghĩa toán học này với các điều kiện bổ sung bên dưới.
- Các phần tử trong tập hợp không được trùng lặp.
- Các phần tử trong tập hợp là bất biến (không thể sửa đổi) nhưng tập hợp nói chung là có thể thay đổi.
- Không có chỉ mục nào được gắn vào bất kỳ phần tử nào trong một tập hợp python. Vì vậy chúng không hỗ trợ bất kỳ thao tác lập chỉ mục hoặc cắt nào.
Đặt hoạt động
Các tập hợp trong python thường được sử dụng cho các phép toán như liên hiệp, giao điểm, khác biệt và bổ sung, v.v. Chúng ta có thể tạo một tập hợp, truy cập các phần tử của nó và thực hiện các phép toán này như được hiển thị bên dưới.
Tạo một tập hợp
Một tập hợp được tạo bằng cách sử dụng hàm set () hoặc đặt tất cả các phần tử trong một cặp dấu ngoặc nhọn.
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
Months={"Jan","Feb","Mar"}
Dates={21,22,17}
print(Days)
print(Months)
print(Dates)
Khi đoạn mã trên được thực thi, nó tạo ra kết quả như sau. Hãy lưu ý thứ tự của các phần tử đã thay đổi như thế nào trong kết quả.
set(['Wed', 'Sun', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])
set(['Jan', 'Mar', 'Feb'])
set([17, 21, 22])
Truy cập các giá trị trong một tập hợp
Chúng tôi không thể truy cập các giá trị riêng lẻ trong một tập hợp. Chúng tôi chỉ có thể truy cập tất cả các phần tử cùng nhau như được hiển thị ở trên. Nhưng chúng ta cũng có thể lấy danh sách các phần tử riêng lẻ bằng cách lặp qua tập hợp.
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
for d in Days:
print(d)
Khi đoạn mã trên được thực thi, nó tạo ra kết quả như sau.
Wed
Sun
Fri
Tue
Mon
Thu
Sat
Thêm các mục vào một tập hợp
Chúng ta có thể thêm các phần tử vào một tập hợp bằng cách sử dụng phương thức add (). Một lần nữa như đã thảo luận, không có chỉ mục cụ thể nào được gắn vào phần tử mới được thêm vào.
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])
Days.add("Sun")
print(Days)
Khi đoạn mã trên được thực thi, nó tạo ra kết quả như sau.
set(['Wed', 'Sun', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])
Xóa mục khỏi một tập hợp
Chúng ta có thể xóa các phần tử khỏi một tập hợp bằng cách sử dụng phương thức discard (). Một lần nữa như đã thảo luận, không có chỉ mục cụ thể nào được gắn vào phần tử mới được thêm vào.
Days=set(["Mon","Tue","Wed","Thu","Fri","Sat"])
Days.discard("Sun")
print(Days)
Khi đoạn mã trên được thực thi, nó tạo ra kết quả như sau.
set(['Wed', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])
Liên hiệp các bộ
Phép toán liên hợp trên hai tập hợp tạo ra một tập hợp mới chứa tất cả các phần tử riêng biệt từ cả hai tập hợp. Trong ví dụ dưới đây, phần tử “Wed” có trong cả hai tập hợp.
DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA|DaysB
print(AllDays)
Khi đoạn mã trên được thực thi, nó tạo ra kết quả như sau. Xin lưu ý rằng kết quả chỉ có một "wed".
set(['Wed', 'Fri', 'Tue', 'Mon', 'Thu', 'Sat'])
Giao điểm của Bộ
Phép toán giao nhau trên hai tập hợp tạo ra một tập hợp mới chỉ chứa các phần tử chung của cả hai tập hợp. Trong ví dụ dưới đây, phần tử “Wed” có trong cả hai tập hợp.
DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA & DaysB
print(AllDays)
Khi đoạn mã trên được thực thi, nó tạo ra kết quả như sau. Xin lưu ý rằng kết quả chỉ có một "wed".
set(['Wed'])
Sự khác biệt của các bộ
Phép toán khác biệt trên hai tập hợp tạo ra một tập hợp mới chỉ chứa các phần tử từ tập hợp đầu tiên và không có phần tử nào từ tập hợp thứ hai. Trong ví dụ dưới đây, phần tử “Wed” có trong cả hai tập hợp nên nó sẽ không được tìm thấy trong tập kết quả.
DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Wed","Thu","Fri","Sat","Sun"])
AllDays = DaysA - DaysB
print(AllDays)
Khi đoạn mã trên được thực thi, nó tạo ra kết quả như sau. Xin lưu ý rằng kết quả chỉ có một "wed".
set(['Mon', 'Tue'])
So sánh các bộ
Chúng ta có thể kiểm tra xem một tập hợp đã cho là tập hợp con hay tập hợp con của tập hợp khác. Kết quả là Đúng hoặc Sai tùy thuộc vào các phần tử có trong tập hợp.
DaysA = set(["Mon","Tue","Wed"])
DaysB = set(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"])
SubsetRes = DaysA <= DaysB
SupersetRes = DaysB >= DaysA
print(SubsetRes)
print(SupersetRes)
Khi đoạn mã trên được thực thi, nó tạo ra kết quả như sau.
True
True