Hướng dẫn python cartesian product of two lists - sản phẩm cartesian python của hai danh sách
Cho Python 2.5 trở lên: Show
Đây là phiên bản đệ quy của 0 (chỉ là một minh họa):
Example: Sử dụng 1 để tạo sản phẩm Cartesian của nhiều danh sách trong Python.
Bài viết này mô tả các nội dung sau đây.
Sản phẩm Cartesian là gìSử dụng cơ bản của 1
Sản phẩm của Cartesian là tập hợp tất cả các kết hợp các yếu tố từ nhiều bộ. Sản phẩm Cartesian - Wikipedia
Nhập mô -đun 4. Nó được bao gồm trong thư viện tiêu chuẩn, do đó, không cần cài đặt bổ sung .________ 25 được sử dụng để làm cho kết quả dễ đọc hơn.
Bản in đẹp với pprint trong Python
Vượt qua hai danh sách như là đối số. 1 Trả về một đối tượng loại 7. 7 là một trình lặp, vì vậy nội dung không được xuất ra bởi 9.
Cũng có thể có được từng yếu tố riêng biệt thay vì một tuple.
Giải nén một tuple và danh sách trong Python Kết quả giống như khi sử dụng các vòng lặp lồng nhau (nhiều vòng). Cũng có thể chuyển đổi thành một danh sách với các bộ dữ liệu là các yếu tố với 2.
Như bạn có thể thấy từ kết quả ở trên, khi từ điển được lặp lại, các phím được trả về. Nếu bạn cần các giá trị, hãy sử dụng phương thức 7. Xem bài viết sau đây để biết chi tiết.
Xem bài viết sau đây để biết thêm thông tin về 8.
Sử dụng cùng một danh sách (có thể lặp lại) nhiều lần: lặp lạiBạn có thể chỉ định số lượng lặp lại trong đối số từ khóa 3. Điều tương tự được sử dụng nhiều lần để tạo ra một sản phẩm Cartesian.
Giống như ví dụ sau mà không có 3. 0
Nếu nhiều lần lặp được chỉ định: 1Giống như ví dụ sau. Lưu ý rằng đó là 1 thay vì 2. 2So sánh tốc độ với nhiều vòng (các vòng lồng nhau)Như đã đề cập ở trên, nhiều vòng lặp (vòng lặp lồng nhau) cho kết quả tương tự như 1. 3Như bạn có thể thấy dưới đây, 1 thực sự chậm hơn so với các vòng lặp lồng nhau.Các kết quả có thể khác nhau tùy thuộc vào số lượng các phần tử trong ITEBELD và số lượng vòng lặp, nhưng sau khi hỏi đáp trên Stack Overflow cũng trả lời rằng 1 chậm hơn.
Sau đây là kết quả của việc đo thời gian thực hiện với lệnh ma thuật 6 trong máy tính xách tay Jupyter. Lưu ý rằng nó không thể được đo bằng cách chạy nó dưới dạng mã Python.
Ví dụ về một vòng đôi với 1000 yếu tố: Kết quả của 1 nhanh hơn để giải nén. 4Các vòng lặp lồng nhau là giống nhau (nhanh hơn một chút) như 1 khi được giải nén. 5Nó nhanh hơn để không giải nén khi sử dụng biểu thức máy phát là phiên bản trình tạo hiểu danh sách, nhưng nó chậm hơn so với 1 hoặc các vòng lặp lồng nhau.
6Ví dụ về việc tính tổng các sản phẩm của mỗi kết hợp. Một lần nữa, việc sử dụng các vòng lồng nhau nhanh hơn 1.
7Trong ví dụ này, việc chuyển biểu thức máy phát sang 1 nhanh hơn một chút. 8Ví dụ về một vòng ba với 100 yếu tố: Một lần nữa, sử dụng một vòng lặp cho vòng lặp là nhanh nhất. 9Như được mô tả ở trên, sự khác biệt giữa một vòng đôi với 1000 phần tử và vòng ba với 100 phần tử chỉ là một vài phần nghìn giây. |