Bộ Python tốt cho việc gì?

Một tập hợp là một tập hợp các phần tử duy nhất không có thứ tự và có thể thay đổi. Các tập hợp được viết bằng dấu ngoặc nhọn ({}), là các phần tử được phân tách bằng dấu phẩy

Khối mã sau hiển thị hai tập hợp, chứa tập hợp các số và thành phố

Bất kỳ kiểu dữ liệu bất biến nào cũng có thể là một phần tử của một tập hợp (e. g. chuỗi và số nguyên). Nếu bạn cố gắng sử dụng một kiểu dữ liệu có thể thay đổi trong một tập hợp, một ngoại lệ (TypeError) sẽ xuất hiện, như minh họa bên dưới

2. Tạo một tập hợp với hàm tạo set()

Các bộ cũng có thể được xác định bằng chức năng tích hợp set([iterable]). Hàm này lấy đối số là một lần lặp (i. e. bất kỳ loại trình tự, bộ sưu tập hoặc trình vòng lặp nào), trả về một tập hợp chứa các mục duy nhất từ ​​đầu vào (các giá trị trùng lặp sẽ bị xóa)

Như được hiển thị ở trên, thứ tự ban đầu của các mục đầu vào không được duy trì, do các bộ chứa không có thứ tự

Chúng ta cũng có thể sử dụng hàm tạo set() mà không cần bất kỳ tham số đầu vào nào. Trong trường hợp này, hàm tạo trả về một tập rỗng

3. Thêm phần tử vào tập hợp

Để thêm một phần tử vào một tập hợp, chúng ta sử dụng tập hợp. phương pháp thêm (phần tử). Phương thức này sửa đổi tập hợp tại chỗ, trả về Không có

Như được hiển thị bên dưới, các. phương thức add() không thêm một phần tử vào tập hợp nếu phần tử đó đã có sẵn, vì các tập hợp không thể chứa các mục trùng lặp

Không giống như danh sách, chúng ta không thể chèn một phần tử vào một chỉ mục nhất định, vì các tập hợp là các vùng chứa không có thứ tự, nghĩa là các phần tử không có vị trí cụ thể bên trong một tập hợp

4. Xóa phần tử khỏi tập hợp

Có ba cách để loại bỏ các phần tử khỏi một tập hợp

  • Sử dụng bộ. phương pháp loại bỏ (x)
  • Sử dụng bộ. loại bỏ (x) phương pháp
  • Sử dụng bộ. phương thức pop()

Phương pháp loại bỏ

Bộ. phương thức remove(x) loại bỏ một phần tử x khỏi một tập hợp. Phương thức này sửa đổi tập hợp tại chỗ, trả về Không có. Nếu phần tử x không tồn tại, một ngoại lệ (KeyError) được đưa ra

Phương pháp loại bỏ

Bộ. phương thức discard(x) loại bỏ một phần tử x khỏi một tập hợp nếu nó hiện diện. So với phương thức xóa, phương thức loại bỏ không đưa ra ngoại lệ (KeyError) nếu phần tử bị xóa không tồn tại

Như được hiển thị ở trên, phương thức loại bỏ sửa đổi tập hợp tại chỗ, trả về Không có

phương pháp pop

Bộ. phương thức pop() loại bỏ và trả về một phần tử tùy ý từ một tập hợp

So với danh sách, phương thức pop không nhận bất kỳ đối số nào. Chúng tôi không thể chỉ định chỉ mục mà chúng tôi muốn xóa, vì các bộ là một tập hợp các phần tử không có thứ tự

5. Các hoạt động toán học. hợp, giao, hiệu và hiệu đối xứng

Chúng ta có thể sử dụng các tập hợp trong Python để tính toán các phép toán như hợp, giao, hiệu và hiệu đối xứng. Các hoạt động logic này có thể được biểu diễn bằng một sơ đồ gọi là sơ đồ Venn. Biểu đồ Venn được sử dụng rộng rãi trong toán học, thống kê và khoa học máy tính để hình dung sự khác biệt và tương đồng giữa các tập hợp. Chúng ta có thể vẽ biểu đồ Venn hai và ba vòng tròn có trọng số khu vực bằng thư viện bên thứ ba matplotlib-venn. 💜

Cho hai bộ, một bộ chứa động vật là động vật có vú và bộ khác chứa động vật sống dưới nước

Chúng ta có thể tính toán các hoạt động toán học đã nói ở trên theo cách sau

liên hiệp

Hợp của hai tập hợp A và B là tập hợp chứa các phần tử thuộc A, B hoặc cả hai và được kí hiệu là A ∪ B

Vùng tô màu đỏ của sơ đồ Venn thể hiện sự kết hợp của bộ động vật có vú và động vật sống dưới nước.

Hợp của hai tập hợp

Để tính toán thao tác này với Python, chúng ta có thể sử dụng tập hợp. phương pháp kết hợp (tập hợp khác) hoặc. nhà điều hành

hợp của hai tập hợp

Như được hiển thị ở trên, cả hai đều trả về một bộ mới chứa tất cả các mục từ bộ động vật có vú và thủy sinh

Ngã tư

Giao của hai tập hợp A và B là tập hợp chứa các phần tử chung của cả hai tập hợp và được kí hiệu là A ∩ B

Vùng tô màu đỏ của biểu đồ Venn thể hiện giao điểm của các nhóm động vật có vú và động vật sống dưới nước.

Giao của hai tập hợp

Trong Python, chúng ta có thể tính giao của hai tập hợp bằng cách sử dụng tập hợp. phương thức giao nhau (tập hợp khác) hoặc toán tử &

Như bạn có thể quan sát, phương thức giao nhau và toán tử & trả về một tập hợp mới, chứa các mục tồn tại trong cả hai tập hợp mà không sửa đổi chúng

Sự khác biệt

Hiệu của hai tập hợp A và B là tập hợp gồm tất cả các phần tử của tập hợp A không thuộc tập hợp B và được kí hiệu là A-B

Khu vực tô màu đỏ của sơ đồ Venn thể hiện sự khác biệt giữa động vật có vú và thủy sinh (động vật có vú-thủy sinh). Bộ này chứa các động vật là động vật có vú nhưng không sống dưới nước

Sự khác biệt của động vật có vú trừ thủy sản

Chúng ta cũng có thể thu được các động vật sống dưới nước nhưng không phải động vật có vú, tính toán sự khác biệt giữa động vật sống dưới nước và động vật có vú

Sự khác biệt của thủy sinh trừ động vật có vú

Để tính toán sự khác biệt giữa hai tập hợp trong Python, chúng ta có thể sử dụng tập hợp. phương thức khác biệt (tập hợp khác) (tập hợp khác tập hợp) hoặc toán tử (-)

Như bạn có thể quan sát, các bộ động vật có vú và thủy sinh không được sửa đổi tại chỗ

sự khác biệt đối xứng

Hiệu đối xứng của hai tập hợp A và B là tập hợp gồm các phần tử thuộc một trong hai tập hợp A và B nhưng không thuộc cả hai tập hợp và được ký hiệu là A △ B

Biểu đồ Venn sau đây thể hiện sự khác biệt đối xứng của các bộ động vật có vú và thủy sinh (khu vực tô màu đỏ). Bộ này bao gồm các loài động vật có vú và sống dưới nước nhưng không phải cả hai

Hiệu đối xứng của hai tập hợp

Trong Python, chúng ta có thể tìm hiệu đối xứng của hai tập hợp bằng cách sử dụng tập hợp. symmetric_difference(another set) hoặc toán tử ^ như sau

6. Tập con và tập siêu

Tập A là tập con của tập B (A ⊆ B) hay tương đương tập B là tập siêu của tập A (B ⊇ A), nếu mọi phần tử của tập A đều thuộc tập B

Biểu đồ Venn sau đây biểu thị hai bộ động vật có vú và động vật có vú dưới nước, động vật có vú dưới nước là một tập hợp con của động vật có vú

Để kiểm tra xem tập A có phải là tập con/tập siêu của tập B hay không ta có thể sử dụng các cách sau

  • A. issubset(B) → Phương thức này trả về True nếu tất cả các phần tử của tập hợp A được chứa trong tập hợp B
  • A. issuperset(B) → Phương thức này trả về True nếu tất cả các phần tử của tập hợp B được chứa trong tập hợp A

Khối mã sau sử dụng cả hai phương pháp để kiểm tra xem một tập hợp có phải là tập hợp con/tập hợp con của một tập hợp khác không

7. Phân chia

Hai tập hợp là rời nhau nếu chúng không có phần tử chung. Hai tập hợp động vật có vú và bò sát sau đây là các tập hợp rời rạc vì giao của chúng là một tập hợp rỗng

Chúng ta có thể kiểm tra xem hai tập hợp có rời nhau hay không bằng cách sử dụng tập hợp. phương thức isdisjoint(bộ khác). Phương thức này trả về True nếu cả hai tập hợp không có phần tử chung. Nếu có, nó trả về Sai

8. Kiểm tra xem một phần tử có tồn tại trong một tập hợp không

Để kiểm tra xem một phần tử có tồn tại trong một tập hợp hay không, chúng ta phải sử dụng toán tử thành viên. Toán tử thành viên được sử dụng để kiểm tra xem một phần tử có mặt trong một chuỗi hay không (e. g. chuỗi, danh sách, bộ dữ liệu, bộ hoặc từ điển). Có hai toán tử thành viên, như được giải thích bên dưới

  • in → Đánh giá là True nếu đối tượng ở phía bên trái được bao gồm trong đối tượng ở phía bên phải
  • not in → Đánh giá là True nếu đối tượng ở bên trái không được bao gồm trong đối tượng ở bên phải

9. Tìm độ dài của một tập hợp

Để xác định tập hợp chứa bao nhiêu phần tử, chúng ta có thể sử dụng hàm len(). Hàm này trả về số lượng mục của một đối tượng. Đầu vào của hàm có thể không chỉ là một tập hợp mà còn có thể là một loại trình tự khác như chuỗi, từ điển, danh sách hoặc bộ

10. thùng chứa thay thế. đóng băng

Một đối tượng Frozenset là một tập hợp mà một khi được tạo ra thì không thể thay đổi được. Chúng tôi tạo một Frozenset trong Python bằng cách sử dụng hàm tạo Frozenset([iterable]), cung cấp một iterable làm đầu vào

Vì các bộ đóng băng là bất biến nên chúng không chấp nhận các phương thức sửa đổi các bộ tại chỗ như thêm, bật hoặc xóa. Như được hiển thị bên dưới, việc cố gắng thêm một phần tử vào một bộ đóng băng sẽ làm phát sinh một ngoại lệ (AttributeError)

Không giống như các bộ, các bộ đóng băng có thể được sử dụng làm khóa trong từ điển hoặc làm thành phần của một bộ khác

trang web thú vị

Ngoài tài liệu chính thức về Python, còn có nhiều trang web nơi bạn có thể tìm thấy các giải thích chi tiết về cách sử dụng các bộ, cùng với các ví dụ