Đôi khi, trong khi làm việc với danh sách Python, chúng ta có thể gặp vấn đề trong đó chúng ta cần trích xuất tất cả các cặp có thể có thể được thực hiện từ các số nguyên từ danh sách. Loại vấn đề này có thể xảy ra trong nhiều lĩnh vực như lập trình hàng ngày và phát triển web. Hãy để thảo luận về những cách nhất định trong đó nhiệm vụ này có thể được thực hiện.
Đầu vào: test_list = [1, 7, 4] đầu ra: [[1, 7], [1, 4], [7, 4]]] : test_list = [1, 7, 4]
Output : [[1, 7], [1, 4], [7, 4]]Đầu vào: test_list = [7, 4] đầu ra: [[7, 4]]] : test_list = [7, 4]
Output : [[7, 4]]
Phương pháp số 1: Sử dụng danh sách hiểu + enumerate[]
Đây là một trong những cách mà nhiệm vụ này có thể được thực hiện. Trong đó, chúng tôi thực hiện nhiệm vụ ghép nối bằng cách sử dụng các vòng lặp lồng nhau trong công thức hiểu danh sách và Enumerate [] được sử dụng để kiểm tra các chỉ số tiếp theo trong khi lặp lại.
This is one of the ways in which this task can be performed. In this, we perform the task of pairing using nested loops in list comprehension recipe, and enumerate[] is used to check with the next indices while iteration.
test_list
=
[
1
,
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]0____9
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]2
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]6
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]7
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]8
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]9
itertools.permutations[lst,r]0
itertools.permutations[lst,r]1
itertools.permutations[lst,r]2
=
itertools.permutations[lst,r]4
itertools.permutations[lst,r]5
itertools.permutations[lst,r]6
itertools.permutations[lst,r]7
itertools.permutations[lst,r]8__
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]6
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]7
[2, 2] [2, 2] [2, 2] [2, 2] [2, 2] [2, 2]9
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]9
itertools.permutations[lst,r]0
enumerate[]
2Đầu ra:
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]
Phương pháp số 2: Sử dụng enumerate[]
3 Đây là một trong những cách mà nhiệm vụ này có thể được thực hiện. Trong đó, chúng tôi chỉ sử dụng hàm inbuild để ghép nối và gửi 2 làm giá trị để tạo các cặp có kích thước 2.
This is one of the ways in which this task can be performed. In this, we just using inbuild function for pairing and sending 2 as value for making pairs of size 2.
enumerate[]
4 enumerate[]
5enumerate[]
6 enumerate[]
7
test_list
=
[
1
,
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]0____9
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]2
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]6
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]7
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]8
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]9
itertools.permutations[lst,r]0
itertools.permutations[lst,r]1
itertools.permutations[lst,r]2
=
itertools.permutations[lst,r]4
itertools.permutations[lst,r]5
itertools.permutations[lst,r]6
itertools.permutations[lst,r]7
itertools.permutations[lst,r]8__
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]6
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]7
[2, 2] [2, 2] [2, 2] [2, 2] [2, 2] [2, 2]9
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]9
itertools.permutations[lst,r]0
enumerate[]
2Đầu ra:
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]4
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]67
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]68
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]69
[
7=
[
1
1
11
21
1=
91
11
6The original list : [1, 7, 4, 3]
All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]
5
Example:
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]52=
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]54=
9The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]36[1,”Mallika”,2,”Yash”]
itertools.permutations[lst,r]5,
2itertools.permutations[lst,r]7The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]60 [[1, ‘Mallika’], [1, 2], [1, ‘Yash’], [‘Mallika’, 1], [‘Mallika’, 2], [‘Mallika’, ‘Yash’], [2, 1], [2, ‘Mallika’], [2, ‘Yash’], [‘Yash’, 1], [‘Yash’, ‘Mallika’], [‘Yash’, 2]]
Đầu ra: Using simple loops
Tìm tất cả các cặp độc đáo [tính độc đáo]
Tuy nhiên, phương pháp hoán vị không phân biệt giữa [a, b] và [b, a] cặp và trả về cả hai. Thư viện itertools cũng hỗ trợ phương thức kết hợp [] in một trong các cặp [a, b] hoặc [b, a] chứ không phải cả hai. Số lượng đầu ra của các phần tử tương đương với [N-1]! trong đó n là độ dài của danh sách. Thời gian cần thiết để tính toán các kết hợp là gần như đa thức. & NBSP;
Python3
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]32
=
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]34
=
9The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]36
[[1, 'Mallika'], [1, 2], [1, 'Yash'], ['Mallika', 1], ['Mallika', 2], ['Mallika', 'Yash'], [[ 2, 1], [2, 'Mallika'], [2, 'Yash'], ['Yash', 1], ['Yash', 'Mallika'], ['Yash', 2]]]
Các cặp được in theo thứ tự của chuỗi sự xuất hiện của các yếu tố trong danh sách.
Các
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]10
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]11
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]12
=
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]14
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]15
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]16
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]6
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]18
Output:
[[1, 'Mallika'], [1, 2], [1, 'Yash'], ['Mallika', 1], ['Mallika', 2], ['Mallika', 'Yash'], [[ 2, 1], [2, 'Mallika'], [2, 'Yash'], ['Yash', 1], ['Yash', 'Mallika'], ['Yash', 2]]]
Phương pháp 2: Sử dụng itertoolsUsing itertools
Python cung cấp hỗ trợ của thư viện tiêu chuẩn ITERTOOLS được sử dụng để tạo ra các trình lặp để lặp hiệu quả. Thư viện cung cấp hỗ trợ cho các loại lặp khác nhau, theo nhóm, thứ tự được sắp xếp, v.v ... Các chức năng hoán vị [] của thư viện này được sử dụng để thông qua tất cả các thứ tự có thể của danh sách các yếu tố, mà không có bất kỳ sự lặp lại nào. Các hàm hoán vị [] có cú pháp sau: itertools standard library which is used to create iterators for efficient looping. The library provides support for various kinds of iterations, in groups, sorted order, etc. The permutations[] functions of this library are used to get through all possible orderings of the list of elements, without any repetitions. The permutations[] functions have the following syntax:
itertools.permutations[lst,r]
Trong đó r mô tả các bộ dữ liệu độ dài R, nghĩa là 2 mô tả một cặp, 3 mô tả một bộ ba. Đối số đầu tiên là danh sách được chỉ định. & nbsp;
Hàm trả về danh sách các nhóm các yếu tố được trả về sau khi hình thành các hoán vị. Đầu ra chứa số phần tử N x [N-1], trong đó n là kích thước của danh sách vì mỗi phần tử sau đó được nhân với tất cả các phần khác. Thời gian cần thiết để tính toán hoán vị là theo cấp số nhân theo thứ tự kích thước của danh sách. & NBSP;
Python3
enumerate[]
6
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]20
[
7___
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]32
=
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]34
=
9The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]36
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]6
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]7
=
7The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]40
Output:
[[1, 'Mallika'], [1, 2], [1, 'Yash'], ['Mallika', 1], ['Mallika', 2], ['Mallika', 'Yash'], [[ 2, 1], [2, 'Mallika'], [2, 'Yash'], ['Yash', 1], ['Yash', 'Mallika'], ['Yash', 2]]]
Note:
- Phương pháp 2: Sử dụng itertools
- Python cung cấp hỗ trợ của thư viện tiêu chuẩn ITERTOOLS được sử dụng để tạo ra các trình lặp để lặp hiệu quả. Thư viện cung cấp hỗ trợ cho các loại lặp khác nhau, theo nhóm, thứ tự được sắp xếp, v.v ... Các chức năng hoán vị [] của thư viện này được sử dụng để thông qua tất cả các thứ tự có thể của danh sách các yếu tố, mà không có bất kỳ sự lặp lại nào. Các hàm hoán vị [] có cú pháp sau:
Python3
enumerate[]
6
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]20
[
7___
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]32
=
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]34
=
9The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]36
Các cặp được in theo thứ tự của chuỗi sự xuất hiện của các yếu tố trong danh sách.
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]00
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]6
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]63
Trong trường hợp của tất cả các yếu tố tương tự, phương pháp vẫn tiếp tục tạo thành các cặp và trả lại chúng, ngay cả khi chúng là bản sao. :
[2, 2] [2, 2] [2, 2] [2, 2] [2, 2] [2, 2]
[
7=
[
=
91
1=
91
1=
9The original list : [1, 7, 4, 3]
All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]
5
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]52
=
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]54
=
9The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]36
Example:
itertools.permutations[lst,r]5,
2itertools.permutations[lst,r]7The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]60[1,”Mallika”,2,”Yash”]Đầu ra: [[1, ‘Mallika’], [1, 2], [1, ‘Yash’], [‘Mallika’, 2], [‘Mallika’, ‘Yash’], [2, ‘Yash’]]
Python3
enumerate[]
6
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]20
[
7___
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]32
=
The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]34
=
9The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]36
Các cặp được in theo thứ tự của chuỗi sự xuất hiện của các yếu tố trong danh sách.
Trong trường hợp của tất cả các yếu tố tương tự, phương pháp vẫn tiếp tục tạo thành các cặp và trả lại chúng, ngay cả khi chúng là bản sao.
Output:
[
7=
[
=
91
1=
91
1=
9The original list : [1, 7, 4, 3] All possible pairs : [[1, 7], [1, 4], [1, 3], [7, 4], [7, 3], [4, 3]]5