Hướng dẫn python permutation without itertools - hoán vị python không có itertools
Itertools trong Python là một mô -đun tạo ra các trình lặp phức tạp với sự trợ giúp của các phương pháp hoạt động trên các trình lặp. Mô-đun này hoạt động như một công cụ nhanh, tiết kiệm bộ nhớ được sử dụng bởi chính nó hoặc kết hợp để tạo thành đại số lặp. Show In kết hợp bằng cách sử dụng itertoolsSử dụng itertools, chúng tôi có thể hiển thị tất cả các kết hợp có thể của chuỗi theo một cách khá được tối ưu hóa. Để hiển thị kết hợp yêu cầu 2 tham số. Đầu tiên là chuỗi và thứ hai là độ dài của các chuỗi con cần thiết. Ví dụ sau đây làm cho tất cả các kết hợp cho chuỗi ‘ABC, sử dụng itertools. & Nbsp; Example: Python3
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]1 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]2 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]3 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]4 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]7 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]8
[('a', 'b'), ('a', 'c'), ('b', 'c')]0 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 [('a', 'b'), ('a', 'c'), ('b', 'c')]2
[('a', 'b'), ('a', 'c'), ('b', 'c')]4 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 [('a', 'b'), ('a', 'c'), ('b', 'c')]6
[('a', 'b'), ('a', 'c'), ('b', 'c')]8 [('a', 'b'), ('a', 'c'), ('b', 'c')]9 from 0 from 1from 2 from 3Đầu ra [('a', 'b'), ('a', 'c'), ('b', 'c')] In kết hợp mà không sử dụng itertoolsA. Sử dụng đệ quyĐể tạo các kết hợp mà không cần sử dụng iterTools, hãy lặp lại danh sách từng cái một và sửa phần tử đầu tiên của danh sách và tạo kết hợp với danh sách còn lại. Tương tự, lặp lại với tất cả các yếu tố danh sách từng cái một bằng cách đệ quy của danh sách còn lại. Python3
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]3 [('a', 'b'), ('a', 'c'), ('b', 'c')]4 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 itertools 1[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]8
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]0 itertools 5
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 itertools 9
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 combinations 3
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 combinations 7combinations 8 combinations 9def 0
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 def 4def 5combinations 9def 7
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]3 1[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]7 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]8
[('a', 'b'), ('a', 'c'), ('b', 'c')]0 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 9
[('a', 'b'), ('a', 'c'), ('b', 'c')]8 [('a', 'b'), ('a', 'c'), ('b', 'c')]9 from 0 from 1from 2 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]06 [('a', 'b'), ('a', 'c'), ('b', 'c')]6 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]08 Đầu ra [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']] In kết hợp mà không sử dụng itertoolsA. Sử dụng đệ quy Python3Để tạo các kết hợp mà không cần sử dụng iterTools, hãy lặp lại danh sách từng cái một và sửa phần tử đầu tiên của danh sách và tạo kết hợp với danh sách còn lại. Tương tự, lặp lại với tất cả các yếu tố danh sách từng cái một bằng cách đệ quy của danh sách còn lại.
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]3 [('a', 'b'), ('a', 'c'), ('b', 'c')]4 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 itertools 1[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]8
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]0 itertools 5
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]0
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 combinations 3
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 combinations 7combinations 8 combinations 9def 0
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 def 4def 5combinations 9def 7
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]61 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]62
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]64 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]8 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]52 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]0
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]3 1[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]7 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]8
[('a', 'b'), ('a', 'c'), ('b', 'c')]8 [('a', 'b'), ('a', 'c'), ('b', 'c')]9 from 0 from 1from 2 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]06 [('a', 'b'), ('a', 'c'), ('b', 'c')]6 [['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]08 B. Bằng cách sử dụng các lần lặp lại Trong đó, trả về sự kết hợp đầu tiên của N phần tử từ chuỗi như vậy, sau đó các kết hợp khác được thực hiện bằng cách xem xét từng phần tử theo vị trí của nó. Mỗi yếu tố được coi là duy nhất dựa trên vị trí của nó, không phải dựa trên giá trị của nó. Vì vậy, nếu các phần tử đầu vào là duy nhất, sẽ không có giá trị lặp lại trong mỗi kết hợp. & NBSP; Output: [('a', 'b'), ('a', 'c'), ('b', 'c')] |