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.
In kết hợp bằng cách sử dụng itertools
Sử 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
from
itertools
import
combinations
def
n_length_combo[arr, n]:
____10
[['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 itertools
A. 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
def
from
5
[['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
itertools
3
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]0
itertools
5
itertools
7
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5
itertools
9
from
0 import
2___
itertools
3combinations
1
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5
combinations
3itertools
3combinations
5
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5
combinations
7combinations
8 combinations
9def
0itertools
3def
2
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5
def
4def
5combinations
9def
7itertools
3from
0 n_length_combo[arr, n]:
0from
2 n_length_combo[arr, n]:
2
n_length_combo[arr, n]:
3n_length_combo[arr, n]:
4n_length_combo[arr, n]:
55____86
____10 n_length_combo[arr, n]:
9
[['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 itertools
A. 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.
def
from
5
[['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
itertools
3
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]0
itertools
5
from
0 import
2___
itertools
3
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]0
itertools
3combinations
1
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5
combinations
3itertools
3combinations
5
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5
combinations
7combinations
8 combinations
9def
0itertools
3def
2
[['a', 'b'], ['a', 'c'], ['b', 'a'], ['b', 'c'], ['c', 'a'], ['c', 'b']]5
def
4def
5combinations
9def
7itertools
3from
0 n_length_combo[arr, n]:
0from
2 n_length_combo[arr, n]:
2
n_length_combo[arr, n]:
3n_length_combo[arr, n]:
4n_length_combo[arr, n]:
55____86
[['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
itertools
3
[['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
____10 n_length_combo[arr, n]:
9
[['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']]