Mô-đun itertools
cung cấp một số chức năng hữu ích để tạo các trình vòng lặp để lặp hiệu quả. Bạn có thể sử dụng chức năng chain[]
của nó để nối hai hoặc nhiều bộ lại với nhau, như hình bên dưới
1
2
3
4
5
6
7
8
9
10
11
12
nhập công cụ iter
if __name__ == '__main__'.
x = {1, 3}
y = {5}
z = {7, 9}
s = đặt[itertools.chuỗi[x, y, z]]
in[s] # {1, 3, 5, 7, 9}
Tải xuống Chạy mã
2. Sử dụng Iterable Unpacking Operator
Với Python3. 5, bạn có thể sử dụng toán tử giải nén lặp lại *
để nối nhiều bộ. Đây là mã sẽ trông như thế nào
1
2
3
4
5
6
7
8
9
10
if __name__ == '__main__'.
x = {1, 3}
y = {5}
z = {7, 9}
s = {*x, *y, *z}
in[s] # {1, 3, 5, 7, 9}
Tải xuống Chạy mã
3. Sử dụng chức năng union[]
Hàm union[]
nối tất cả các mục từ một tập hợp này sang tập hợp khác. Bạn có thể sử dụng nó để tham gia nhiều bộ, như hình bên dưới
Cách hiệu quả nhất để tham gia nhiều bộ [được lưu trữ trong danh sách các bộ], sử dụng Python một lớp lót
# Create the list of sets lst = [{1, 2, 3}, {1, 4}, {2, 3, 5}] # One-Liner to union a list of sets print[set[].union[*lst]]1 để tạo một đối tượng bộ mới, gọi phương thức
union[]
trên đối tượng mới và giải nén tất cả các bộ từ danh sách các bộ thành Một tập hợp là một tập hợp duy nhất các phần tử không có thứ tự. Thao tác hợp kết hợp tất cả các phần tử của hai tập hợp thành một tập hợp mới—loại bỏ tất cả các mục nhập trùng lặp trong quy trình
Trong video sau, bạn có thể xem tôi giải thích cách hợp nhất nhiều bộ trong Python
Làm cách nào để kết hợp nhiều bộ trong Python?
Xem video này trên YouTube
Vì vậy, chúng ta hãy đi sâu vào công thức bài toán chính thức, phải không?
Vấn đề. Đưa ra một danh sách hoặc một tập hợp các bộ. Làm cách nào để tham gia các bộ đó bằng thao tác hợp?
Ví dụ. Bạn có một danh sách các tập hợp
# Create the list of sets lst = [{1, 2, 3}, {1, 4}, {2, 3, 5}] # One-Liner to union a list of sets print[set[].union[*lst]]4 và bạn muốn tính toán công đoàn
# Create the list of sets lst = [{1, 2, 3}, {1, 4}, {2, 3, 5}] # One-Liner to union a list of sets print[set[].union[*lst]]5
Dung dịch. Để liên kết một danh sách các tập hợp, hãy sử dụng chiến lược sau
- Tạo một bộ mới bằng hàm tạo
# Create the list of sets lst = [{1, 2, 3}, {1, 4}, {2, 3, 5}] # One-Liner to union a list of sets print[set[].union[*lst]]
6 - Gọi phương thức
union[]
trên đối tượng tập hợp mới - Chuyển tất cả các tập hợp dưới dạng đối số vào phương thức
union[]
bằng cách giải nén danh sách bằng toán tử dấu hoa thị{1, 2, 3, 4, 5}
0 - Kết quả của phương pháp
union[]
là một tập hợp mới chứa tất cả các phần tử thuộc ít nhất một trong các tập hợp
Mã số. Đây là mã một lớp kết hợp một bộ sưu tập các bộ
# Create the list of sets lst = [{1, 2, 3}, {1, 4}, {2, 3, 5}] # One-Liner to union a list of sets print[set[].union[*lst]]
Đầu ra của mã này là hợp của ba bộ
{1, 2, 3, 4, 5}2,
{1, 2, 3, 4, 5}3,
{1, 2, 3, 4, 5}4
{1, 2, 3, 4, 5}
Nếu bạn yêu thích Python one-liners, hãy xem cuốn sách mới của tôi “Python One-Liners” [Amazon Link] dạy bạn hiểu thấu đáo về tất cả các dòng mã Python
Hãy tự mình thử. Đây là mã trong trình vỏ mã tương tác chạy mã đó trong trình duyệt của bạn
Tập thể dục. Thay đổi mã để tính giao điểm của các tập hợp trong danh sách
Đi đâu từ đây?
Đủ lý thuyết. Hãy thực hành một số
Các lập trình viên được trả sáu con số trở lên vì họ có thể giải quyết vấn đề hiệu quả hơn bằng cách sử dụng trí thông minh máy móc và tự động hóa
Để trở nên thành công hơn trong việc viết mã, hãy giải quyết nhiều vấn đề thực tế hơn cho người thực. Đó là cách bạn trau dồi những kỹ năng bạn thực sự cần trong thực tế. Rốt cuộc, việc sử dụng lý thuyết học tập mà không ai cần là gì?
Bạn xây dựng các kỹ năng mã hóa có giá trị cao bằng cách làm việc trên các dự án mã hóa thực tế
Bạn có muốn ngừng học với các dự án đồ chơi và tập trung vào các dự án mã thực tế giúp bạn kiếm tiền và giải quyết các vấn đề thực sự cho mọi người không?
🚀 Nếu câu trả lời của bạn là CÓ. , cân nhắc trở thành nhà phát triển Python tự do. Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện kỹ năng Python của bạn—ngay cả khi bạn là người mới hoàn toàn
Nếu bạn chỉ muốn tìm hiểu về cơ hội làm việc tự do, vui lòng xem hội thảo trên web miễn phí của tôi “Cách xây dựng kỹ năng Python có thu nhập cao của bạn” và tìm hiểu cách tôi phát triển công việc viết mã của mình trực tuyến cũng như cách bạn có thể làm được—từ sự thoải mái của bạn
Tham gia hội thảo trên web miễn phí ngay bây giờ
Chris
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