Python's set.union(*sets)1 tạo và trả về một tập hợp mới bao gồm các phần tử là thành viên của bất kỳ tập hợp nào có liên quan. Tập hợp kết quả có ít nhất nhiều phần tử như bất kỳ tập hợp nào khác được đưa ra trong danh sách đối số
Python Set union() - Ví dụ, Giải thích, Thời gian chạy
Xem video này trên YouTube
Đây là một ví dụ tối thiểu tạo ra một tập hợp mới phát sinh từ sự kết hợp của hai tập hợp set.union(*sets)2 và set.union(*sets)3
>>> s = {1, 2, 3, 4} >>> t = {3, 4, 5} >>> s.union(t) {1, 2, 3, 4, 5}cú pháp
Hãy đi sâu vào cú pháp chính thức của phương thức set.union(*sets)4
set.union(*sets)Đối sốKiểu dữ liệuGiải thíchset.union(*sets)5Một hoặc nhiều bộCác phần tử của các bộ đó sẽ được hợp nhấtGiá trị trả về của Set union()
Giá trị trả về của set.union(*sets)4 là một tập hợp mới bao gồm các phần tử là thành viên của bất kỳ tập hợp nào, bao gồm cả tập hợp mà nó được gọi. Nó có ít nhất số phần tử như bất kỳ tập hợp nào khác có liên quan
Các ví dụ nâng cao Set Union
Có một số điểm tinh tế mà bạn cần hiểu về phương pháp hợp nhất đã đặt. Hãy đi sâu vào chúng bằng ví dụ
Ví dụ đơn giản là tính toán hợp của một siêu tập hợp với một trong các tập hợp con của nó. Trong trường hợp này, kết quả là tập hợp siêu vì tất cả các phần tử trong tập hợp con đã là các phần tử của tập hợp lớn, theo định nghĩa
________số 8Nhưng điều gì sẽ xảy ra nếu bạn đảo ngược giá trị này và tính toán hợp của một tập con và một tập siêu?
>>> {1, 2}.union({1, 2, 3}) {1, 2, 3}Bạn có thể tính hợp của một tập hợp và một tập hợp rỗng không? . Giá trị trả về là tập hợp lớn hơn
set.union(*sets)0Đặt các đối số tập hợp nhiều đối số
Bạn có thể tính toán sự kết hợp của một tập hợp ban đầu và một số đối số tập hợp tùy ý. Trong trường hợp này, giá trị trả về sẽ là một tập hợp chứa các phần tử là thành viên của bất kỳ tập hợp nào có liên quan
Đây là một ví dụ
set.union(*sets)1Tất cả các phần tử là thành viên của tập hợp mới được tạo
Liên minh tập hợp Python. Nhà điều hành
Một cách ngắn gọn hơn nhiều để viết hợp tập hợp là toán tử quá tải set.union(*sets)7. Khi áp dụng cho hai tập hợp set.union(*sets)2 và set.union(*sets)3, kết quả của ________ 80 giống như gọi ________ 81. Nó tính toán hợp của các tập hợp
Đây là một ví dụ cơ bản
set.union(*sets)7Ký hiệu set.union(*sets)7 này ngắn gọn và dễ đọc hơn. Do đó, bạn có thể muốn chọn toán tử >>> {1, 2, 3}.union({1, 2}) {1, 2, 3}3 thay vì phương thức set.union(*sets)4
Để tính tập hợp tập hợp của nhiều tập hợp với. toán tử, xâu chuỗi nhiều phép tính liên kết lại với nhau như thế này. set.union(*sets)3
set.union(*sets)4Bạn không cần nhập bất kỳ thư viện nào để sử dụng. toán tử—nó được tích hợp sẵn
Cập nhật bộ Python so với Union
Cả >>> {1, 2, 3}.union({1, 2}) {1, 2, 3}8 và set.union(*sets)4 đều thực hiện thao tác hợp. Tuy nhiên, >>> {1, 2, 3}.union({1, 2}) {1, 2, 3}8 thêm tất cả các phần tử còn thiếu vào tập hợp mà nó được gọi trong khi set.union(*sets)4 tạo một tập hợp mới. Do đó, giá trị trả về của >>> {1, 2, 3}.union({1, 2}) {1, 2, 3}8 là >>> {1, 2}.union({1, 2, 3}) {1, 2, 3}3 (có tác dụng phụ) và giá trị trả về của set.union(*sets)4 là một tập hợp (không có tác dụng phụ)
Đây là một ví dụ về phương pháp >>> {1, 2}.union({1, 2, 3}) {1, 2, 3}5
>>> s = {1, 2, 3, 4} >>> t = {3, 4, 5} >>> s.union(t) {1, 2, 3, 4, 5}3Bộ ban đầu set.union(*sets)2 đã được sửa đổi và hiện có năm yếu tố sau khi cập nhật. Không có giá trị trả về, vì vậy bạn cần in riêng bộ
Đây là một ví dụ về phương pháp >>> {1, 2}.union({1, 2, 3}) {1, 2, 3}7
>>> s = {1, 2, 3, 4} >>> t = {3, 4, 5} >>> s.union(t) {1, 2, 3, 4, 5}6Cả hai bộ không thay đổi. Tuy nhiên, một tập hợp mới đã được tạo—và tập hợp này là giá trị trả về của phép toán
Độ phức tạp về thời gian của Set Union trong Python là gì?
Độ phức tạp thời gian chạy của phương thức set.union(*sets)4 trên một tập hợp có n phần tử và một đối số tập hợp có m phần tử là O(n + m) vì bạn cần tạo một tập hợp trống và chèn tất cả n phần tử, sau đó chèn tất cả m phần tử vào tập hợp mới . Chèn một phần tử vào một tập hợp là O(1), vì vậy độ phức tạp thời gian chạy là O(n) * O(1) + O(m) * O(1) = O(m+n)
Bạn có thể thấy điều này trong thử nghiệm đơn giản sau đây, nơi chúng tôi chạy phương thức set nhiều lần để tăng kích thước set
Tôi đã chạy thử nghiệm này trên máy tính xách tay Acer Aspire 5 (tôi biết) với bộ xử lý Intel Core i7 (Thế hệ thứ 8) và bộ nhớ 16GB. Đây là mã của thử nghiệm
set.union(*sets)0Các phương thức đặt Python khác
Tất cả các phương thức tập hợp được gọi trên một tập hợp nhất định. Ví dụ: nếu bạn đã tạo tập hợp >>> {1, 2}.union({1, 2, 3}) {1, 2, 3}9, bạn sẽ gọi set.union(*sets)00 để xóa tất cả các phần tử của tập hợp. Chúng tôi sử dụng thuật ngữ “tập hợp này” để chỉ tập hợp mà phương thức được thực thi
set.union(*sets)01Thêm một phần tử vào tập hợp nàyset.union(*sets)02Xóa tất cả các phần tử khỏi tập hợp nàyset.union(*sets)03Tạo và trả về một bản sao phẳng của tập hợp nàyset.union(*sets)04Tạo và trả lại một tập hợp mới chứa tất cả các phần tử của tập hợp này trừ những phần tử trong các đối số tập hợp đã cho. Tập hợp kết quả có nhiều nhất nhiều phần tử như bất kỳ tập hợp nào khác. set.union(*sets)05Xóa tất cả các phần tử khỏi tập hợp này là thành viên của bất kỳ đối số tập hợp đã cho nào. set.union(*sets)06Xóa một phần tử khỏi tập hợp này nếu nó là thành viên, nếu không thì không làm gì cả. set.union(*sets)07Tạo và trả về một tập hợp mới chứa tất cả các phần tử là thành viên của tất cả các tập hợp. cái này và (các) bộ được chỉ định. set.union(*sets)08Xóa tất cả các phần tử khỏi tập hợp này mà không phải là thành viên trong tất cả các tập hợp được chỉ định khác. set.union(*sets)09Trả lại set.union(*sets)10 nếu không có phần tử nào từ tập hợp này là thành viên của bất kỳ tập hợp cụ thể nào khác. Các tập hợp là rời nhau khi và chỉ khi giao của chúng là tập hợp rỗng. set.union(*sets)11Trả lại set.union(*sets)10 nếu tất cả các phần tử của tập hợp này là thành viên của đối số tập hợp đã chỉ định. set.union(*sets)13Trả lại set.union(*sets)10 nếu tất cả các phần tử của đối số tập hợp đã chỉ định là thành viên của tập hợp này. set.union(*sets)15Xóa và trả lại phần tử ngẫu nhiên khỏi tập hợp này. Nếu tập hợp trống, nó sẽ tăng set.union(*sets)16. set.union(*sets)17Xóa và trả về một phần tử cụ thể khỏi tập hợp này như được xác định trong đối số. Nếu tập hợp không chứa phần tử, nó sẽ tăng set.union(*sets)16. set.union(*sets)19Trả về một tập hợp mới có các phần tử trong tập hợp này hoặc đối số tập hợp đã chỉ định, nhưng không phải các phần tử là thành viên của cả hai. set.union(*sets)70Thay thế bộ này bằng sự khác biệt đối xứng, tôi. e. , các phần tử trong tập hợp này hoặc đối số tập hợp đã chỉ định, nhưng không phải các phần tử là thành viên của cả hai. set.union(*sets)71Tạo và trả về một tập hợp mới với tất cả các phần tử có trong tập hợp này hoặc trong bất kỳ đối số tập hợp nào đã chỉ định. set.union(*sets)72Cập nhật tập hợp này với tất cả các phần tử có trong tập hợp này hoặc trong bất kỳ đối số tập hợp nào đã chỉ định. Tập hợp kết quả có ít nhất nhiều phần tử như bất kỳ tập hợp nào khácChris
Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính
Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners (NoStarch 2020), đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới
Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây