2. Các phép toán trong tập hợp
Các tập hợp có lợi thế hơn các cấu trúc dữ liệu khác ở chỗ nó thực hiện được các phép
toán tập hợp như hợp, hiệu, giao...
2.1 Phép hợp (Union)
Hợp của hai tập hợp cho kết quả là tất cả các phần tử trong hai tập hợp, chú ý phần tử
nào lặp lại sẽ chỉ xuất hiện 1 lần trong tập kết quả. Trong Python, để thực hiện phép hợp,
chúng ta sử dụng phương thức .union().
7
Chú ý, sử dụng tập hợp nào trước cũng cho kết quả như nhau,
python_class.union(php_class) cũng cho kết quả như php_class.union(python_class).
python_class = {"Dung", "Van", "Duc"}
php_class = {"Huy", "Dung"}
all_class = python_class.union(php_class)
print(all_class) # Kết quả {'Dung', 'Van', 'Duc', 'Huy'}
2.2 Phép trừ (Difference)
Hiệu của một tập A trừ đi một tập B cho kết quả là tất các phần tử thuộc A nhưng
không thuộc B. Sử dụng phương thức .difference() để thực hiện phép trừ hai tập hợp.
python_class = {"Dung", "Van", "Duc"}
php_class = {"Huy", "Dung"}
python_but_not_php = python_class.difference(php_class)
php_but_not_python = php_class.difference(python_class)
print(python_but_not_php) # Kết quả {'Van', 'Duc'}
print(php_but_not_python) # Kết quả {'CharlHuyie'}
2.3 Hiệu đối xứng của hai tập hợp (Symmetric difference)
Hiệu đối xứng của hai tập A và B được kết quả là tập hợp các phần tử thuộc cả A và B
nhưng không đồng thời thuộc cả tập A và B. Phương thức .symmetric_difference() cho
kết quả là hiệu đối xứng của hai tập hợp.
Chú ý, do tính chất đối xứng nên python_class.symmetric_difference(php_class) và
php_class.symmetric_difference(python_class) cho kết quả như nhau.
8
python_class = {"Dung", "Van", "Duc"}
php_class = {"Huy", "Dung"}
not_in_both_1 = python_class.symmetric_difference(php_class)
print(not_in_both_1) # Kết quả {'Van', 'Duc', 'Huy'}
not_in_both_2 = php_class.symmetric_difference(python_class)
print(not_in_both_2) # Kết quả {'Van', 'Duc', 'Huy'}
2.4 Phép giao (Intersection)
Phép giao hai tập hợp cho kết quả là các phần tử đồng thời thuộc cả hai tập hợp. Trong
Python sử dụng phương thức .intersection() để thực hiện phép giao.
Chú ý tập hợp nào đứng trước cũng được, do đó kết quả
python_class.intersection(php_class) và php_class.intersection(python_class) là như nhau.
python_class = {"Dung", "Van", "Duc"}
php_class = {"Huy", "Dung"}
python_php = python_class.intersection(php_class)
print(python_php) # Kết quả là {"Dung"}
2.5 Thay đổi tập hợp dựa trên phép toán tập hợp
Trong phần trước chúng ta đã biết đến phương thức .update() để thêm nhiều phần tử
vào một tập hợp. Dựa vào các phép toán tập hợp, Python cung cấp một số các phương
thức khác để thay đổi tập hợp như sau:
9
Chia sẻ với bạn bè của bạn: |