Hướng dẫn how do you get all the unique combinations in python? - làm thế nào để bạn có được tất cả các kết hợp độc đáo trong python?

EDIT: Đây không phải là bản sao chính xác về cách có được tất cả các kết hợp có thể có của một danh sách các yếu tố?

Chủ đề này là về việc tìm kiếm các kết hợp độc đáo trong khi chủ đề khác là về việc tìm kiếm tất cả các kết hợp.

Nếu tôi có một danh sách Python:

 L = [1,2,3,4]

Cách tốt nhất để có được tất cả các kết hợp độc đáo có thể có của 3 yếu tố từ danh sách như dưới đây:

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

Thứ tự của các yếu tố trong các kết hợp không quan trọng. Ví dụ, "1,2,3""3,2,1" sẽ được coi là cùng một sự kết hợp.

Tôi có thể viết một vài vòng để làm điều này nhưng tôi nghĩ rằng có thể có một lớp lót có thể làm như vậy.

Sự kết hợp là một kỹ thuật toán học, tính toán số lượng các sắp xếp có thể trong một tập hợp các mục hoặc danh sách. Trong kết hợp thứ tự lựa chọn không quan trọng. Sự kết hợp độc đáo của hai danh sách trong Python có thể được hình thành bằng cách ghép từng yếu tố của danh sách đầu tiên với các phần tử của danh sách thứ hai. & NBSP;

Example:

List_1 = ["a","b"]
List_2 = [1,2]
Unique_combination = [[('a',1),('b',2)],[('a',2),('b',1)]] 

Phương pháp 1: Sử dụng hoán vị () của gói itertools và chức năng zip ().Using permutation() of itertools package and zip() function.

Cách tiếp cận :

  • Nhập gói itertools và khởi tạo list_1 và list_2.
  • Tạo một danh sách trống của ‘độc đáo_combinations, để lưu trữ các kết hợp kết quả thu được.
  • Gọi itertools.permutations () sẽ trả về các hoán vị của list_1 với độ dài của list_2. Nói chung, độ dài của danh sách ngắn hơn được thực hiện và nếu cả hai danh sách đều bằng nhau, hãy sử dụng.
  • Đối với vòng lặp được sử dụng và hàm zip () được gọi để ghép từng hoán vị và phần tử danh sách ngắn hơn vào kết hợp.
  • Sau đó, mỗi kết hợp được chuyển đổi thành một danh sách và nối vào danh sách kết hợp.

Dưới đây là việc thực hiện.

Python3

import itertools

from itertools import

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

["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
1
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
2
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
3
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
4
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
5
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
6
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
5
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
8
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
9
List_1 = ["a","b"]
List_2 = [1,2]
Unique_combination = [[('a',1),('b',2)],[('a',2),('b',1)]] 
0
List_1 = ["a","b"]
List_2 = [1,2]
Unique_combination = [[('a',1),('b',2)],[('a',2),('b',1)]] 
1

List_1 = ["a","b"]
List_2 = [1,2]
Unique_combination = [[('a',1),('b',2)],[('a',2),('b',1)]] 
2
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
2
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
3
List_1 = ["a","b"]
List_2 = [1,2]
Unique_combination = [[('a',1),('b',2)],[('a',2),('b',1)]] 
5
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
9
List_1 = ["a","b"]
List_2 = [1,2]
Unique_combination = [[('a',1),('b',2)],[('a',2),('b',1)]] 
7
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
9
List_1 = ["a","b"]
List_2 = [1,2]
Unique_combination = [[('a',1),('b',2)],[('a',2),('b',1)]] 
9
List_1 = ["a","b"]
List_2 = [1,2]
Unique_combination = [[('a',1),('b',2)],[('a',2),('b',1)]] 
1

"1,2,3"1

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

"1,2,3"4

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

"1,2,3"9 "3,2,1"0"3,2,1"1 "3,2,1"2

"3,2,1"3"3,2,1"4

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

"3,2,1"3"3,2,1"9import0import1

import2import3

Đầu ra:

[[('a', 1), ('b', 4), ('c', 9)], [('a', 1), ('b', 4), ('d', 9 )], [('a', 1), ('c', 4), ('b', 9)], [('a', 1), ('c', 4), ('d' , 9)], [('a', 1), ('d', 4), ('b', 9)], [('a', 1), ('d', 4), (' c ', 9)], [(' b ', 1), (' a ', 4), (' c ', 9)], [(' b ', 1), (' a ', 4), ('d', 9)], [('b', 1), ('c', 4), ('a', 9)], [('b', 1), ), ('d', 9)], [('b', 1), ('d', 4), ('a', 9)], [('b', 1), ('d' , 4), ('c', 9)], [('c', 1), ('a', 4), ('b', 9)], [('c', 1), (' a ', 4), (' d ', 9)], [(' c ', 1), (' b ', 4), (' a ', 9)], [(' c ', 1), ('B', 4), ('d', 9)], [('c', 1), ('d', 4), ), ('d', 4), ('b', 9)], [('d', 1), ('a', 4), ('b', 9)], [('d' , 1), ('a', 4), ('c', 9)], [('d', 1), ('b', 4), ('a', 9)], [(' d ', 1), (' b ', 4), (' c ', 9)], [(' d ', 1), (' c ', 4), (' a ', 9)], [ ('d', 1), ('c', 4), ('b', 9)]] & nbsp; & nbsp;
 

Phương pháp 2: Sử dụng sản phẩm () của gói itertools và chức năng zip ().Using product() of itertools package and zip() function.

Cách tiếp cận :

  • Nhập gói itertools và khởi tạo list_1 và list_2.
  • Tạo một danh sách trống của ‘độc đáo_combinations, để lưu trữ các kết hợp kết quả thu được.
  • Gọi itertools.permutations () sẽ trả về các hoán vị của list_1 với độ dài của list_2. Nói chung, độ dài của danh sách ngắn hơn được thực hiện và nếu cả hai danh sách đều bằng nhau, hãy sử dụng.
  • Đối với vòng lặp được sử dụng và hàm zip () được gọi để ghép từng hoán vị và phần tử danh sách ngắn hơn vào kết hợp.

Dưới đây là việc thực hiện.

Python3

import itertools

from itertools import

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

["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
1
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
2
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
3
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
4
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
5
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
6
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
5
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
8
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
9
List_1 = ["a","b"]
List_2 = [1,2]
Unique_combination = [[('a',1),('b',2)],[('a',2),('b',1)]] 
0
List_1 = ["a","b"]
List_2 = [1,2]
Unique_combination = [[('a',1),('b',2)],[('a',2),('b',1)]] 
1

List_1 = ["a","b"]
List_2 = [1,2]
Unique_combination = [[('a',1),('b',2)],[('a',2),('b',1)]] 
2
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
2
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
3
List_1 = ["a","b"]
List_2 = [1,2]
Unique_combination = [[('a',1),('b',2)],[('a',2),('b',1)]] 
5
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
9
List_1 = ["a","b"]
List_2 = [1,2]
Unique_combination = [[('a',1),('b',2)],[('a',2),('b',1)]] 
7
["1,2,3", "1,2,4", "2,3,4", "3,4,1"]
9
List_1 = ["a","b"]
List_2 = [1,2]
Unique_combination = [[('a',1),('b',2)],[('a',2),('b',1)]] 
9
List_1 = ["a","b"]
List_2 = [1,2]
Unique_combination = [[('a',1),('b',2)],[('a',2),('b',1)]] 
1

"1,2,3"1

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

"1,2,3"4

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

"1,2,3"9 "3,2,1"0"3,2,1"1 "3,2,1"2

import2import3

Đầu ra:

[[('a', 1), ('b', 4), ('c', 9)], [('a', 1), ('b', 4), ('d', 9 )], [('a', 1), ('c', 4), ('b', 9)], [('a', 1), ('c', 4), ('d' , 9)], [('a', 1), ('d', 4), ('b', 9)], [('a', 1), ('d', 4), (' c ', 9)], [(' b ', 1), (' a ', 4), (' c ', 9)], [(' b ', 1), (' a ', 4), ('d', 9)], [('b', 1), ('c', 4), ('a', 9)], [('b', 1), ), ('d', 9)], [('b', 1), ('d', 4), ('a', 9)], [('b', 1), ('d' , 4), ('c', 9)], [('c', 1), ('a', 4), ('b', 9)], [('c', 1), (' a ', 4), (' d ', 9)], [(' c ', 1), (' b ', 4), (' a ', 9)], [(' c ', 1), ('B', 4), ('d', 9)], [('c', 1), ('d', 4), ), ('d', 4), ('b', 9)], [('d', 1), ('a', 4), ('b', 9)], [('d' , 1), ('a', 4), ('c', 9)], [('d', 1), ('b', 4), ('a', 9)], [(' d ', 1), (' b ', 4), (' c ', 9)], [(' d ', 1), (' c ', 4), (' a ', 9)], [ ('d', 1), ('c', 4), ('b', 9)]] & nbsp; & nbsp;
 


Làm thế nào để bạn có được tất cả các kết hợp có thể có trong Python?

Powerset, Làm thế nào để có được tất cả các kết hợp của một danh sách trong Python..
Nhập mô-đun ITERtools tích hợp ..
Chỉ định danh sách các mục ..
Khởi tạo một danh sách trống để lưu trữ các kết hợp ..
Tạo một vòng lặp các giá trị vòng từ 0 đến chiều dài của danh sách + 1 ..

Làm thế nào để bạn tạo ra tất cả các kết hợp có thể của một danh sách?

Để liệt kê tất cả các kết hợp có thể trong một tờ Excel, hãy làm theo quy trình sau ;..
Bước 1: Mở tờ.Trước tiên, bạn cần mở trang tính với dữ liệu mà bạn muốn thực hiện tất cả các kết hợp có thể.....
Bước 2: Chọn ô cho kết quả.....
Bước 3: Kéo công thức sang các ô khác ..

Làm thế nào để bạn tìm thấy một sự kết hợp độc đáo?

Số lượng kết hợp của n đối tượng riêng biệt, được thực hiện tại một thời điểm là: cr = n!/ r! (N - r)!Cr = n! / r! (n - r)!

Làm thế nào để bạn tạo ra tất cả các kết hợp có thể của hai danh sách?

Nhập công thức = list1.Expand Out Cột List1 mới và sau đó đóng và tải truy vấn vào bảng.Bảng sẽ có tất cả các kết hợp các mục từ cả hai danh sách và chúng tôi đã lưu trong việc tạo một cột tùy chỉnh trong List1 và tránh sử dụng một truy vấn hợp nhất hoàn toàn! Expand out the new List1 column and then Close & Load the query to a table. The table will have all the combinations of items from both lists and we saved on making a custom column in List1 and avoided using a merge query altogether!