Computer >> Máy Tính >  >> Lập trình >> Python

Tất cả các hoán vị có thể có của N danh sách trong Python

Nếu chúng ta có hai danh sách và chúng ta cần kết hợp từng phần tử của phần tử đầu tiên với mỗi phần tử của danh sách thứ hai, thì chúng tôi có các cách tiếp cận dưới đây.

Sử dụng For Loop

Trong cách tiếp cận thẳng này, chúng tôi tạo một danh sách các danh sách chứa hoán vị của các phần tử từ mỗi danh sách. chúng tôi thiết kế một vòng lặp for trong vòng lặp for khác. Vòng lặp for bên trong đề cập đến danh sách thứ hai và Outer follow đề cập đến danh sách đầu tiên.

Ví dụ

A = [5,8]
B = [10,15,20]

print ("The given lists : ", A, B)
permutations = [[m, n] for m in A for n in B ]

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau:

The given lists : [5, 8] [10, 15, 20]
permutations of the given values are : [[5, 10], [5, 15], [5, 20], [8, 10], [8, 15], [8, 20]]

Sử dụng itertools

Mô-đun itertools có một trình lặp có tên là sản phẩm. Nó thực hiện tương tự như những gì mà vòng lặp for lồng nhau ở trên thực hiện. Tạo các vòng lặp for lồng nhau trong nội bộ để cung cấp sản phẩm được yêu cầu.

Ví dụ

import itertools

A = [5,8]
B = [10,15,20]

print ("The given lists : ", A, B)
result = list(itertools.product(A,B))
print ("permutations of the given lists are : " + str(result))

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau:

The given lists : [5, 8] [10, 15, 20]
permutations of the given values are : [(5, 10), (5, 15), (5, 20), (8, 10), (8, 15), (8, 20)]