Python - Tham gia các bộ
Tham gia bộ
Có một số cách để nối hai hoặc nhiều bộ trong Python.
Các phương thức union()
và update()
nối tất cả các mục từ cả hai bộ.
Phương thức intersection()
CHỈ giữ lại các bản sao.
Phương thức difference()
giữ các mục từ tập đầu tiên không có trong (các) tập khác.
Phương thức symmetric_difference()
giữ tất cả các mục NGOẠI TRỪ các mục trùng lặp.
liên hiệp
Phương thức union()
trả về một tập hợp mới với tất cả các mục từ cả hai tập hợp.
Ví dụ
Nối set1 và set2 thành một bộ mới:
set1 = {"a", "b", "c"}
set2 = {1, 2, 3}
set3 = set1.union(set2)
print(set3)
Hãy tự mình thử » Bạn có thể sử dụng |
toán tử thay vì phương thức union()
và bạn sẽ nhận được kết quả tương tự.
Ví dụ
Sử dụng |
để tham gia hai bộ:
set1 = {"a", "b", "c"}
set2 = {1, 2, 3}
set3 = set1 | set2
print(set3)
Hãy tự mình thử »Tham gia nhiều bộ
Tất cả các phương thức và toán tử nối có thể được sử dụng để nối nhiều tập hợp.
Khi sử dụng một phương thức, chỉ cần thêm nhiều bộ vào dấu ngoặc đơn, phân tách bằng dấu phẩy:
Ví dụ
Tham gia nhiều bộ bằng phương thức union()
:
set1 = {"a", "b", "c"}
set2 = {1, 2, 3}
set3 = {"John", "Elena"}
set4 = {"apple",
"bananas", "cherry"}
myset = set1.union(set2, set3, set4)
print(myset)
Hãy tự mình thử » Khi sử dụng |
toán tử, hãy tách các bộ bằng more |
toán tử:
Ví dụ
Sử dụng |
để tham gia hai bộ:
set1 = {"a", "b", "c"}
set2 = {1, 2, 3}
set3 = {"John", "Elena"}
set4 = {"apple",
"bananas", "cherry"}
myset = set1 | set2 | set3 |set4
print(myset)
Hãy tự mình thử »Tham gia một bộ và một bộ
Phương thức union()
cho phép bạn nối một tập hợp với các kiểu dữ liệu khác, như danh sách hoặc bộ dữ liệu.
Kết quả sẽ là một tập hợp.
Ví dụ
Tham gia một bộ với một bộ dữ liệu:
x = {"a", "b", "c"}
y = (1, 2, 3)
z = x.union(y)
print(z)
Hãy tự mình thử » Lưu ý: |
toán tử chỉ cho phép bạn nối các tập hợp với các tập hợp chứ không phải với các kiểu dữ liệu khác như bạn có thể làm với phương thức union()
.
Cập nhật
Phương thức update()
chèn tất cả các mục từ bộ này sang bộ khác.
update()
thay đổi tập hợp ban đầu và không trả về tập hợp mới.
Ví dụ
Phương thức update()
chèn các mục trong set2 vào set1:
set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}
set1.update(set2)
print(set1)
Hãy tự mình thử » Lưu ý: Cả union()
và update()
sẽ loại trừ mọi mục trùng lặp.
Ngã tư
CHỈ giữ lại các bản sao
Phương thức intersection()
sẽ trả về một tập hợp mới, chỉ chứa các mục có trong cả hai tập hợp.
Ví dụ
Nối set1 và set2, nhưng chỉ giữ lại các bản sao:
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set3 = set1.intersection(set2)
print(set3)
Hãy tự mình thử » Bạn có thể sử dụng toán tử &
thay vì phương thức intersection()
và bạn sẽ nhận được kết quả tương tự.
Ví dụ
Sử dụng &
để nối hai bộ:
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set3 = set1
& set2
print(set3)
Hãy tự mình thử » Lưu ý: Toán tử &
chỉ cho phép bạn nối các tập hợp với các tập hợp chứ không phải với các kiểu dữ liệu khác như bạn có thể làm với phương thức intersecton()
.
Phương thức intersection_update()
cũng sẽ CHỈ giữ lại các bản sao, nhưng nó sẽ thay đổi tập hợp ban đầu thay vì trả về một tập hợp mới.
Ví dụ
Giữ các mục tồn tại trong cả set1
và set2
:
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set1.intersection_update(set2)
print(set1)
Hãy tự mình thử » Các giá trị True
và 1
được coi là cùng một giá trị. Điều tương tự cũng xảy ra với False
và 0
.
Ví dụ
Tham gia các bộ chứa các giá trị True
, False
, 1
và 0
và xem những gì được coi là trùng lặp:
set1 = {"apple", 1, "banana", 0, "cherry"}
set2 = {False, "google",
1, "apple", 2, True}
set3 = set1.intersection(set2)
print(set3)
Hãy tự mình thử »Sự khác biệt
Phương thức difference()
sẽ trả về một tập hợp mới chỉ chứa các mục từ tập đầu tiên không có trong tập khác.
Ví dụ
Giữ tất cả các mục từ set1 không có trong set2:
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set3 = set1.difference(set2)
print(set3)
Hãy tự mình thử » Bạn có thể sử dụng toán tử -
thay vì phương thức difference()
và bạn sẽ nhận được kết quả tương tự.
Ví dụ
Sử dụng -
để nối hai bộ:
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set3 = set1 - set2
print(set3)
Hãy tự mình thử » Lưu ý: Toán tử -
chỉ cho phép bạn nối các tập hợp với các tập hợp chứ không phải với các kiểu dữ liệu khác như bạn có thể làm với phương thức difference()
.
Phương thức difference_update()
cũng sẽ giữ lại các mục từ tập đầu tiên không có trong tập khác, nhưng nó sẽ thay đổi tập ban đầu thay vì trả về tập mới.
Ví dụ
Sử dụng phương thức difference_update()
để giữ lại các mục không có trong cả hai bộ:
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set1.difference_update(set2)
print(set1)
Hãy tự mình thử »Sự khác biệt đối xứng
Phương thức symmetric_difference()
sẽ chỉ giữ lại các phần tử KHÔNG có trong cả hai bộ.
Ví dụ
Giữ các mục không có trong cả hai bộ:
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set3 = set1.symmetric_difference(set2)
print(set3)
Hãy tự mình thử » Bạn có thể sử dụng toán tử ^
thay vì phương thức symmetric_difference()
và bạn sẽ nhận được kết quả tương tự.
Ví dụ
Sử dụng ^
để nối hai bộ:
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set3 = set1 ^ set2
print(set3)
Hãy tự mình thử » Lưu ý: Toán tử ^
chỉ cho phép bạn nối các tập hợp với các tập hợp chứ không phải với các kiểu dữ liệu khác như bạn có thể làm với phương thức symmetric_difference()
.
Phương thức symmetric_difference_update()
cũng sẽ giữ lại tất cả trừ các bản sao, nhưng nó sẽ thay đổi tập hợp ban đầu thay vì trả về một tập hợp mới.
Ví dụ
Sử dụng phương thức symmetric_difference_update()
để giữ các mục không có trong cả hai bộ:
set1 = {"apple", "banana", "cherry"}
set2 = {"google", "microsoft", "apple"}
set1.symmetric_difference_update(set2)
print(set1)
Hãy tự mình thử »