Hướng dẫn python subset of list - tập hợp con của danh sách python

Đưa ra một bộ, viết một chương trình Python để tạo tất cả các tập hợp con có thể có kích thước n của tập hợp đã cho trong danh sách. & NBSP;
 

Examples:  

Input : {1, 2, 3}, n = 2
Output : [{1, 2}, {1, 3}, {2, 3}]

Input : {1, 2, 3, 4}, n = 3
Output : [{1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4}]

Chúng tôi đã thảo luận về vấn đề tương tự bằng cách sử dụng phương pháp ngây thơ trong bài viết này. Bài viết này tập trung vào các phương pháp pythonic để in tất cả các tập hợp con có kích thước nhất định của một bộ.

Python có itertools.combinations [ITable, n] trả về n độ dài của các phần tử từ đầu vào có thể điều chỉnh được. Điều này có thể được sử dụng để in tất cả các tập hợp con có kích thước nhất định của một bộ. Bây giờ, chúng tôi có nhiều lựa chọn thay thế để sử dụng chức năng này.itertools.combinations[iterable, n] which Return n length subsequences of elements from the input iterable. This can be used to Print all subsets of a given size of a set. Now, we have various alternatives to use this function.

Mã số 1: & nbsp; chỉ cần chuyển tập hợp là có thể lặp lại và kích thước như các đối số trong itertools.combinations [] để trực tiếp tìm nạp danh sách kết hợp. & Nbsp;
Simply pass the set as iterable and the size as arguments in the itertools.combinations[] to directly fetch the combination list.
 

Python3

import itertools

def findsubsets[s, n]:

    ____10

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

[[1, 2], [1, 3], [2, 3]]
3
[[1, 2], [1, 3], [2, 3]]
4
[[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], [2, 3]]
7
[{1, 2}, {1, 3}, {2, 3}]
0
[{1, 2}, {1, 3}, {2, 3}]
1

[{1, 2}, {1, 3}, {2, 3}]
2
[[1, 2], [1, 3], [2, 3]]
4
[[1, 2], [1, 3], [2, 3]]
8

[{1, 2}, {1, 3}, {2, 3}]
5
[{1, 2}, {1, 3}, {2, 3}]
6

Output:

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

& nbsp; & nbsp; mã #2: & nbsp; chúng ta cũng có thể sử dụng một giải pháp thay thế cho phương thức được thảo luận ở trên được đặt ra chức năng itertools.combinations []. & nbsp; & nbsp;
Code #2 : 
We can also use an alternative to the above-discussed method which is mapping set to itertools.combinations[] function. 
 

Python3

import itertools

def findsubsets[s, n]:

def findsubsets[s, n]:

    ____10

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

[[1, 2], [1, 3], [2, 3]]
3
[[1, 2], [1, 3], [2, 3]]
4
[[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], [2, 3]]
7
[{1, 2}, {1, 3}, {2, 3}]
0
[{1, 2}, {1, 3}, {2, 3}]
1

[{1, 2}, {1, 3}, {2, 3}]
2
[[1, 2], [1, 3], [2, 3]]
4
[[1, 2], [1, 3], [2, 3]]
8

[{1, 2}, {1, 3}, {2, 3}]
5
[{1, 2}, {1, 3}, {2, 3}]
6

Output:

[{1, 2}, {1, 3}, {2, 3}]

& nbsp; & nbsp; mã #2: & nbsp; chúng ta cũng có thể sử dụng một giải pháp thay thế cho phương thức được thảo luận ở trên được đặt ra chức năng itertools.combinations []. & nbsp; & nbsp;
Code #3 : 
Another method is to use for loop in itertools.combinations[] function and append the combination sets to the list. 
 

Python3

import itertools

def findsubsets[s, n]:

    ____10

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

[[1, 2], [1, 3], [2, 3]]
3
[[1, 2], [1, 3], [2, 3]]
4
[[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], [2, 3]]
7
[{1, 2}, {1, 3}, {2, 3}]
0
[{1, 2}, {1, 3}, {2, 3}]
1

[{1, 2}, {1, 3}, {2, 3}]
2
[[1, 2], [1, 3], [2, 3]]
4
[[1, 2], [1, 3], [2, 3]]
8

[{1, 2}, {1, 3}, {2, 3}]
5
[{1, 2}, {1, 3}, {2, 3}]
6

Output:

[{1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4}]

& nbsp; & nbsp; mã #2: & nbsp; chúng ta cũng có thể sử dụng một giải pháp thay thế cho phương thức được thảo luận ở trên được đặt ra chức năng itertools.combinations []. & nbsp; & nbsp;

[{1, 2}, {1, 3}, {2, 3}]
9
[{1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4}]
0import
[{1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4}]
2 it’s better to answer withoutusing any module. So, here is the solution that does not use itertools module:

Python3

    

[[1, 2], [1, 3], [2, 3]]
0
[[1, 2], [1, 3], [2, 3]]
1
[{1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4}]
8
[{1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4}]
9
[{1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4}]
8
[[2, 3, 4], [1, 3, 4], [1, 2, 4], [1, 2, 3]]
1
[[2, 3, 4], [1, 3, 4], [1, 2, 4], [1, 2, 3]]
2

& nbsp; & nbsp; mã #3: & nbsp; một phương thức khác là sử dụng cho loop trong hàm itertools.combinations [] và nối các bộ kết hợp vào danh sách. & nbsp; & nbsp;

    

[[1, 2], [1, 3], [2, 3]]
0 itertools3__

[[1, 2], [1, 3], [2, 3]]
3
[[1, 2], [1, 3], [2, 3]]
4
[[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], [2, 3]]
7
[{1, 2}, {1, 3}, {2, 3}]
0
[[1, 2], [1, 3], [2, 3]]
7

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

Mã số 4:

Nhiều lần khi câu hỏi này được hỏi trong các cuộc phỏng vấn, tốt hơn là bạn nên trả lời mà không cần sử dụng bất kỳ mô -đun nào. Vì vậy, đây là giải pháp không sử dụng mô -đun itertools:

def findsubsets[s, n]:7

    findsubsets[s, n]:9     0

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

    4

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

    

[{1, 2}, {1, 3}, {2, 3}]
5
[[1, 2], [1, 3], [2, 3]]
55

Output:

        8
[[1, 2], [1, 3], [2, 3]]
4
[[1, 2], [1, 3], [2, 3]]
00
[[1, 2], [1, 3], [2, 3]]
6
[[1, 2], [1, 3], [2, 3]]
02

How do I see all subsets of a list?

E.

def

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

    

[[1, 2], [1, 3], [2, 3]]
0
[[1, 2], [1, 3], [2, 3]]
20itertools6     8itertools8
[[1, 2], [1, 3], [2, 3]]
24__

findsubsets[s, n]:9

[[1, 2], [1, 3], [2, 3]]
32
[[1, 2], [1, 3], [2, 3]]
4
[[1, 2], [1, 3], [2, 3]]
4
[[1, 2], [1, 3], [2, 3]]
35
[[1, 2], [1, 3], [2, 3]]
36

        0

[[1, 2], [1, 3], [2, 3]]
4 itertools3
[[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], [2, 3]]
7__

    __222214
[{1, 2}, {1, 3}, {2, 3}]
0

[[2, 3, 4], [1, 3, 4], [1, 2, 4], [1, 2, 3]]
Làm thế nào tôi thấy tất cả các tập hợp con của một danh sách?.

Dưới đây là các bước để tạo ra nó:.

Chọn một phần tử từ đầu vào, tức là tập hợp con [len] = s [pos]. ....

Hình thành tập hợp con đệ quy bao gồm nó, tức là allsubsets [pos+1, len+1, tập hợp con].

Hình thành tập hợp con đệ quy không bao gồm nó, tức là allsubsets [pos+1, len, tập hợp con].

Đảm bảo tạo từng bộ một lần ..

Làm thế nào để bạn tạo một tập hợp con của một danh sách?

Tạo các tập hợp danh sách.

Chọn danh sách chung trong thanh Cài đặt mô hình ... The most used and recommended method to check for a sublist. This function is tailor made to perform the particular task of checking if one list is a subset of another.

Bài Viết Liên Quan

Chủ Đề