Phép toán tập hợp trong set python | Laptrinhcanban.com

Phép toán tập hợp trong set python

Hướng dẫn sử dụng các phép toán tập hợp trong set python. Phép toán tập hợp là chức năng duy nhất chỉ có trong set, và bạn sẽ học được tất cả chúng sau bài học này.

Với set, bạn có thể thực hiện bốn phép toán tập hợp sau:

  • Hợp hai tập hợp
  • Giao hai tập hợp
  • Hiệu hai tập hợp
  • Phần bù

Hợp hai tập hợp trong python | phương thức update() và union()

Hiểu một cách đơn giản, hợp hai tập hợp là một tập hợp của tất cả các phần tử có trong hai hoặc nhiều tập hợp, như hình dưới đây:
Hợp hai tập hợp trong python

Trong toán học, hợp hai tập hợp được định nghĩa như sau:

  • A∪B={x∣x∈A hoặc x∈B}

Để tìm hợp hai tập hợp trong python, chúng ta có thể sử dụng toán tử |, hoặc là phương thức union() với cú pháp sau đây:

set = set1 | set2 | set3 …
set = set1.union(set2 , set3 ..)

Cách nào ở trên cũng đều đưa ra kết quả giống nhau.
Ví dụ:

s1 = {0, 1}
s2 = {1, 2}
s3 = {3, 4}

union1 = s1 | s2 | s3
print(union1)
#>> {0, 1, 2, 3, 4}

union2= s1.union(s2,s3)
print(union2)
#>> {0, 1, 2, 3, 4}

Lại nữa, nếu bạn muốn lưu kết quả vào set ban đầu thay vì tạo ra một set mới trong phép toán hợp hai tập hợp trong python, hãy sử dụng toán tử |= hoặc là phương thức update() với cú pháp sau đây:

set1 |= set2
set1.update(set2)

Cả hai cách trên đều thực hiện phép hợp hai tập hợp và lưu kết quả vào set ban đầu.
Ví dụ:

s1 = {0, 1}
s2 = {1, 2}

s1 |= s2 # hoặc s1.update(s2)
print(s1)
#>> {0, 1, 2}

Giao hai tập hợp trong python | phương thức intersection() và intersection_update()

Giao hai tập hợp là một tập hợp các phần tử có trong cả hai tập hợp, như hình dưới đây:
Giao hai tập hợp trong python

Trong toán học, giao hai tập hợp được định nghĩa như sau:

  • A∩B={x∣x∈A và x∈B}

Để tìm giao hai tập hợp trong python, chúng ta có thể sử dụng toán tử &, hoặc là phương thức intersection() với cú pháp sau đây:

set = set1 & set2 & set3 …
set = set1.intersection(set2 , set3 ..)

Cách nào ở trên cũng đều đưa ra kết quả giống nhau.
Ví dụ:

set1 = {"A", "B", "C", "D"}
set2 = {"C", "D", "E", "F"}

print(set1 & set2)
#>> {'D', 'C'}
set1.intersection(set2)
#>> {'D', 'C'}

Lại nữa, nếu bạn muốn lưu kết quả vào set ban đầu thay vì tạo ra một set mới trong phép toán giao hai tập hợp trong python, hãy sử dụng toán tử &= hoặc là phương thức intersection_update() với cú pháp sau đây:

set1 &= set2
set1.intersection_update(set2)

Cả hai cách trên đều thực hiện phép giao hai tập hợp và lưu kết quả vào set ban đầu.
Ví dụ:

set1 = {"A", "B", "C", "D"}
set2 = {"C", "D", "E", "F"}

set1.intersection_update(set2)
print(set1)
#>> {'D', 'C'}

Hiệu hai tập hợp trong python

Hiệu hai tập hợp là tập hợp các phần tử có trong một tập hợp nhưng không nằm trong tập hợp còn lại, như hình dưới đây:
Hiệu hai tập hợp trong python

Trong toán học, hiệu hai tập hợp được định nghĩa như sau:

  • A∖B={x∣x∈A và x∉B}.

Để tìm hiệu hai tập hợp trong python, chúng ta có thể sử dụng toán tử -, hoặc là phương thức difference() với cú pháp sau đây:

set = set1 - set2 - set3 …
set = set1.difference(set2 , set3 ..)

Cách nào ở trên cũng đều đưa ra kết quả giống nhau.
Ví dụ:

set1 = {"A", "B", "C", "D"}
set2 = {"C", "D", "E", "F"}

print(set1 - set2)
#>> {'A', 'B'}
print(set1.difference(set2))
#>> {'A', 'B'}

Lại nữa, nếu bạn muốn lưu kết quả vào set ban đầu thay vì tạo ra một set mới trong phép toán hiệu hai tập hợp trong python, hãy sử dụng toán tử -= hoặc là phương thức difference_update() với cú pháp sau đây:

set1 -= set2
set1.difference_update(set2)

Cả hai cách trên đều thực hiện phép hiệu hai tập hợp và lưu kết quả vào set ban đầu.
Ví dụ:

set1 = {"A", "B", "C", "D"}
set2 = {"C", "D", "E", "F"}

set1.difference_update(set2)
print(set1)
#>> {'A', 'B'}

Phần bù trong python

Phần bù trong python là tập hợp các phần tử chỉ chứa ở một trong hai tập hợp, như hình dưới đây:
Phần bù trong python

Trong toán học, phần bù được định nghĩa như sau:

  • Nếu A⊂E thì CEA=E∖A={x∣x∈E và x∉A} được gọi là phần bù của A trong E.

Để tìm phần bù trong python, chúng ta có thể sử dụng toán tử ^, hoặc là phương thức symmetric_difference() với cú pháp sau đây:

set = set1 ^ set2 ^ set3 …
set = set1.symmetric_difference(set2 , set3 ..)

Cách nào ở trên cũng đều đưa ra kết quả giống nhau.
Ví dụ:

set1 = {"A", "B", "C", "D"}
set2 = {"C", "D", "E", "F"}

print(set1 ^ set2)
#>> {'F', 'B', 'E', 'A'}
print(set1.symmetric_difference(set2))
#>> {'F', 'B', 'E', 'A'}

Lại nữa, nếu bạn muốn lưu kết quả vào set ban đầu thay vì tạo ra một set mới trong phép toán phần bù trong python, hãy sử dụng toán tử ^= hoặc là phương thức symmetric_difference_update() với cú pháp sau đây:

set1 ^= set2
set1.symmetric_difference_update(set2)

Cả hai cách trên đều thực hiện phép hiệu hai tập hợp và lưu kết quả vào set ban đầu.
Ví dụ:

set1 = {"A", "B", "C", "D"}
set2 = {"C", "D", "E", "F"}

set1 ^= set2
print(set1)
#>> {'B', 'E', 'F', 'A'}

Tổng kết và thực hành

Trên đây Kiyoshi đã hướng dẫn bạn các phép toán tập hợp trong set python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.