Hướng dẫn how does combinations work in python? - kết hợp hoạt động như thế nào trong python?

Cho một mảng kích thước N, tạo và in tất cả các kết hợp có thể của các phần tử R trong mảng.

Examples:

Input : arr[] = [1, 2, 3, 4],  
            r = 2
Output : [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]

Được đề xuất: Vui lòng thử cách tiếp cận của bạn trên {IDE} trước, trước khi chuyển sang giải pháp.{IDE} first, before moving on to the solution.

Vấn đề này có giải pháp đệ quy hiện tại Vui lòng giới thiệu in tất cả các kết hợp có thể có của các phần tử r trong một mảng có liên kết kích thước n. Chúng tôi sẽ giải quyết vấn đề này trong Python bằng mô -đun itertools.combinations [].itertools.combinations[] module.

Itertools.combinations [] làm gì?

Nó trả về r dài r tràng của các phần tử từ đầu vào có thể điều chỉnh được. Sự kết hợp được phát ra theo thứ tự sắp xếp từ vựng. Vì vậy, nếu đầu vào có thể sắp xếp, các bộ dữ liệu kết hợp sẽ được tạo ra theo thứ tự sắp xếp.

  • itertools.combinations [itable, r]: nó trả về các bộ dữ liệu độ dài r theo thứ tự được sắp xếp mà không có các phần tử lặp lại. Ví dụ: các kết hợp [‘ABCD, 2] ==> [AB, AC, AD, BC, BD, CD].
    It return r-length tuples in sorted order with no repeated elements. For Example, combinations[‘ABCD’, 2] ==> [AB, AC, AD, BC, BD, CD].
  • itertools.combinations_with_replocation [Itable, R]: nó trả về các bộ dữ liệu độ dài r theo thứ tự được sắp xếp với các phần tử lặp lại. Ví dụ: kết hợp_with_replocation [‘ABCD, 2] ==> [AA, AB, AC, AD, BB, BC, BD, CC, CD, DD].
    It return r-length tuples in sorted order with repeated elements. For Example, combinations_with_replacement[‘ABCD’, 2] ==> [AA, AB, AC, AD, BB, BC, BD, CC, CD, DD].
  • from itertools

    [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
    
    0
    [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
    
    1

    [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
    
    2
    [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
    
    3

    [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
    
    4
    [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
    
    5
    [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
    
    6
    [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
    
    7

    [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
    
    8
    [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
    
    9
    [1, 2, 3]
    [1, 3, 2]
    [2, 1, 3]
    [2, 3, 1]
    [3, 1, 2]
    [3, 2, 1]
    0____20
    [1, 2, 3]
    [1, 3, 2]
    [2, 1, 3]
    [2, 3, 1]
    [3, 1, 2]
    [3, 2, 1]
    2
    [1, 2, 3]
    [1, 3, 2]
    [2, 1, 3]
    [2, 3, 1]
    [3, 1, 2]
    [3, 2, 1]
    3

    [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
    
    4
    [1, 2, 3]
    [1, 3, 2]
    [2, 1, 3]
    [2, 3, 1]
    [3, 1, 2]
    [3, 2, 1]
    5
    [1, 2, 3]
    [1, 3, 2]
    [2, 1, 3]
    [2, 3, 1]
    [3, 1, 2]
    [3, 2, 1]
    0
    [1, 2, 3]
    [1, 3, 2]
    [2, 1, 3]
    [2, 3, 1]
    [3, 1, 2]
    [3, 2, 1]
    7
    [1, 2, 3]
    [1, 3, 2]
    [2, 1, 3]
    [2, 3, 1]
    [3, 1, 2]
    [3, 2, 1]
    8
    [1, 2, 3]
    [1, 3, 2]
    [2, 1, 3]
    [2, 3, 1]
    [3, 1, 2]
    [3, 2, 1]
    9
    [1, 2]
    [1, 3]
    [2, 1]
    [2, 3]
    [3, 1]
    [3, 2]
    0
    [1, 2, 3]
    [1, 3, 2]
    [2, 1, 3]
    [2, 3, 1]
    [3, 1, 2]
    [3, 2, 1]
    9
    [1, 2]
    [1, 3]
    [2, 1]
    [2, 3]
    [3, 1]
    [3, 2]
    2
    [1, 2, 3]
    [1, 3, 2]
    [2, 1, 3]
    [2, 3, 1]
    [3, 1, 2]
    [3, 2, 1]
    9
    [1, 2]
    [1, 3]
    [2, 1]
    [2, 3]
    [3, 1]
    [3, 2]
    4
    [1, 2]
    [1, 3]
    [2, 1]
    [2, 3]
    [3, 1]
    [3, 2]
    5

    [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
    
    4
    [1, 2]
    [1, 3]
    [2, 1]
    [2, 3]
    [3, 1]
    [3, 2]
    7
    [1, 2, 3]
    [1, 3, 2]
    [2, 1, 3]
    [2, 3, 1]
    [3, 1, 2]
    [3, 2, 1]
    0
    [1, 2]
    [1, 3]
    [2, 1]
    [2, 3]
    [3, 1]
    [3, 2]
    0

    [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
    
    4
    [1, 2]
    [1, 3]
    [2, 3]
    1
    [1, 2]
    [1, 3]
    [2, 3]
    2

    Output:

    [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
    

    Bài viết này được đóng góp bởi Shashank Mishra [Gullu]. Nếu bạn thích GeekSforGeeks và muốn đóng góp, bạn cũng có thể viết một bài viết bằng cách sử dụng PROPTENT.GeekSforGeeks.org hoặc gửi bài viết của bạn đến. Xem bài viết của bạn xuất hiện trên trang chính của GeekSforGeek và giúp các chuyên viên máy tính khác.Shashank Mishra [Gullu]. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to . See your article appearing on the GeeksforGeeks main page and help other Geeks.

    Vui lòng viết nhận xét nếu bạn tìm thấy bất cứ điều gì không chính xác, hoặc bạn muốn chia sẻ thêm thông tin về chủ đề được thảo luận ở trên.

[1, 2]
[1, 3]
[2, 3]
6
[1, 2]
[1, 3]
[2, 3]
7
[1, 2]
[1, 3]
[2, 3]
8
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
6
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
06

Permutation  

[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
4
[1, 2]
[1, 3]
[2, 3]
1
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
09
 

Python3

from itertools

[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
0
[1, 2]
[1, 3]
[2, 3]
6

[1, 2]
[1, 3]
[2, 3]
7
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
0
[1, 2]
[1, 3]
[2, 3]
9
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
8
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
9
[1, 2]
[1, 3]
[2, 1]
[2, 3]
[3, 1]
[3, 2]
0____29
[1, 2]
[1, 3]
[2, 1]
[2, 3]
[3, 1]
[3, 2]
2
[1, 2]
[1, 3]
[2, 3]
5

[1, 2]
[1, 3]
[2, 3]
6
[1, 2]
[1, 3]
[2, 3]
7
[1, 2]
[1, 3]
[2, 3]
8
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
6
[2, 1]
[2, 3]
[1, 3]
0

[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
4
[1, 2]
[1, 3]
[2, 3]
1
[2, 1]
[2, 3]
[1, 3]
3

Output:  

[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]

Nó tạo ra n! hoán vị nếu độ dài của chuỗi đầu vào là n. & nbsp; nếu muốn & nbsp; để có được hoán vị có độ dài l sau đó thực hiện nó theo cách này. & nbsp; & nbsp;
If want  to get permutations of length L then implement it in this way. 
 

Python3

from itertools

[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
0
[1, 2]
[1, 3]
[2, 3]
6

[1, 2]
[1, 3]
[2, 3]
7
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
0
[1, 2]
[1, 3]
[2, 3]
9
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
8
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
9
[1, 2]
[1, 3]
[2, 1]
[2, 3]
[3, 1]
[3, 2]
0____29
[1, 2]
[1, 3]
[2, 1]
[2, 3]
[3, 1]
[3, 2]
2
[1, 1]
[1, 2]
[1, 3]
[2, 2]
[2, 3]
[3, 3] 
6________________
[1, 1]
[1, 2]
[1, 3]
[2, 2]
[2, 3]
[3, 3] 
8

[1, 2]
[1, 3]
[2, 3]
6
[1, 2]
[1, 3]
[2, 3]
7
[1, 2]
[1, 3]
[2, 3]
8
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
6
[2, 1]
[2, 3]
[1, 3]
0

[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
4
[1, 2]
[1, 3]
[2, 3]
1
[2, 1]
[2, 3]
[1, 3]
3

Output: 

[1, 2]
[1, 3]
[2, 1]
[2, 3]
[3, 1]
[3, 2]

Nó tạo ra n! hoán vị nếu độ dài của chuỗi đầu vào là n. & nbsp; nếu muốn & nbsp; để có được hoán vị có độ dài l sau đó thực hiện nó theo cách này. & nbsp; & nbsp;

Combination  

[1, 2]
[1, 3]
[2, 3]
7
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
0
[1, 2]
[1, 3]
[2, 3]
9
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
8
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
9
[1, 2]
[1, 3]
[2, 1]
[2, 3]
[3, 1]
[3, 2]
0____29
[1, 2]
[1, 3]
[2, 1]
[2, 3]
[3, 1]
[3, 2]
2
[1, 1]
[1, 2]
[1, 3]
[2, 2]
[2, 3]
[3, 3] 
6________________
[1, 1]
[1, 2]
[1, 3]
[2, 2]
[2, 3]
[3, 3] 
8
 

Python3

from itertools

[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
0
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
1

itertools 1

[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
0 itertools 3
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
8
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
9
[1, 2]
[1, 3]
[2, 1]
[2, 3]
[3, 1]
[3, 2]
0____29
[1, 2]
[1, 3]
[2, 1]
[2, 3]
[3, 1]
[3, 2]
2
[1, 1]
[1, 2]
[1, 3]
[2, 2]
[2, 3]
[3, 3] 
6____________
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
01

[1, 2]
[1, 3]
[2, 3]
6
[1, 2]
[1, 3]
[2, 3]
7
[1, 2]
[1, 3]
[2, 3]
8
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
6
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
06

[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
4
[1, 2]
[1, 3]
[2, 3]
1
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
09

Output:  

[1, 2]
[1, 3]
[2, 3]

1. Kết hợp được phát ra theo thứ tự sắp xếp từ vựng của đầu vào. Vì vậy, nếu danh sách đầu vào được sắp xếp, các bộ dữ liệu kết hợp sẽ được tạo theo thứ tự được sắp xếp. & Nbsp; & nbsp;
 

Python3

from itertools

[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
0
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
13

itertools 1

[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
0 itertools 3
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
8
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
9
[1, 2]
[1, 3]
[2, 1]
[2, 3]
[3, 1]
[3, 2]
0____29
[1, 2]
[1, 3]
[2, 1]
[2, 3]
[3, 1]
[3, 2]
2
[1, 1]
[1, 2]
[1, 3]
[2, 2]
[2, 3]
[3, 3] 
6________________
[1, 1]
[1, 2]
[1, 3]
[2, 2]
[2, 3]
[3, 3] 
8

[1, 2]
[1, 3]
[2, 3]
6
[1, 2]
[1, 3]
[2, 3]
7
[1, 2]
[1, 3]
[2, 3]
8
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
6
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
29

[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
4
[1, 2]
[1, 3]
[2, 3]
1
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
09

Output: 

[1, 2]
[1, 3]
[2, 3]

1. Kết hợp được phát ra theo thứ tự sắp xếp từ vựng của đầu vào. Vì vậy, nếu danh sách đầu vào được sắp xếp, các bộ dữ liệu kết hợp sẽ được tạo theo thứ tự được sắp xếp. & Nbsp; & nbsp;
 

Python3

from itertools

[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
0
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
13

itertools 1

[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
0 itertools 3
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
8
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
9
[1, 2]
[1, 3]
[2, 1]
[2, 3]
[3, 1]
[3, 2]
0____29
[1, 2]
[1, 3]
[2, 1]
[2, 3]
[3, 1]
[3, 2]
2
[1, 1]
[1, 2]
[1, 3]
[2, 2]
[2, 3]
[3, 3] 
6________________
[1, 1]
[1, 2]
[1, 3]
[2, 2]
[2, 3]
[3, 3] 
8

[1, 2]
[1, 3]
[2, 3]
6
[1, 2]
[1, 3]
[2, 3]
7
[1, 2]
[1, 3]
[2, 3]
8
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
6
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
29

[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
4
[1, 2]
[1, 3]
[2, 3]
1
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
09

Output: 

[2, 1]
[2, 3]
[1, 3]

1. Kết hợp được phát ra theo thứ tự sắp xếp từ vựng của đầu vào. Vì vậy, nếu danh sách đầu vào được sắp xếp, các bộ dữ liệu kết hợp sẽ được tạo theo thứ tự được sắp xếp. & Nbsp; & nbsp;
 

Python3

from itertools

[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
0
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
13

itertools 1

[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
0 itertools 3
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
8
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
9
[1, 2]
[1, 3]
[2, 1]
[2, 3]
[3, 1]
[3, 2]
0____29
[1, 2]
[1, 3]
[2, 1]
[2, 3]
[3, 1]
[3, 2]
2
[1, 1]
[1, 2]
[1, 3]
[2, 2]
[2, 3]
[3, 3] 
6________________
[1, 1]
[1, 2]
[1, 3]
[2, 2]
[2, 3]
[3, 3] 
8

[1, 2]
[1, 3]
[2, 3]
6
[1, 2]
[1, 3]
[2, 3]
7
[1, 2]
[1, 3]
[2, 3]
8
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
6
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]
29

2. Các yếu tố được coi là duy nhất dựa trên vị trí của chúng, chứ không phải dựa trên giá trị của chúng. 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; & nbsp;

Output:

[1, 1]
[1, 2]
[1, 3]
[2, 2]
[2, 3]
[3, 3] 

Kết hợp Python hoạt động như thế nào?

Phương thức này lấy một danh sách và đầu vào r làm đầu vào và trả về một danh sách đối tượng các bộ dữ liệu chứa tất cả các kết hợp có thể có của độ dài r trong một biểu mẫu danh sách..

Làm thế nào để bạn thực hiện một sự kết hợp trong Python?

Để 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.iterate the list one by one and fix the first element of the list and make combinations with the remaining list. Similarly, iterate with all the list elements one by one by recursion of the remaining list.

Sự kết hợp trở lại trong Python là gì?

Kết hợp [có thể lặp lại, r]: nó trả về các bộ dữ liệu độ dài r theo thứ tự được sắp xếp mà không có các phần tử lặp lại.Ví dụ: kết hợp ['ABCD', 2] ==> [AB, AC, AD, BC, BD, CD].r-length tuples in sorted order with no repeated elements. For Example, combinations['ABCD', 2] ==> [AB, AC, AD, BC, BD, CD].

Bài Viết Liên Quan

Chủ Đề