Python 程式,用以獲取集合中所有指定大小的子集


在本文中,我們將瞭解如何解決以下給定的問題描述。

問題描述−我們給定一個集合,我們需要列出所有大小為 n 的子集

我們有三種方法來解決該問題 −

使用 itertools.combinations() 方法

例如

 即時演示

# itertools module
import itertools
def findsubsets(s, n):
   return list(itertools.combinations(s, n))
#main
s = {1,2,3,4,5}
n = 4
print(findsubsets(s, n))

輸出

[(1, 2, 3, 4), (1, 2, 3, 5), (1, 2, 4, 5), (1, 3, 4, 5), (2, 3, 4, 5)]

使用 map() 和 combination() 方法

例如

# itertools module
from itertools import combinations
def findsubsets(s, n):
   return list(map(set, itertools.combinations(s, n)))
# Driver Code
s = {1, 2, 3, 4, 5}
n = 4
print(findsubsets(s, n))

輸出

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

在列表 iteralbe 中使用列表解析

例如

 即時演示

# itertools
import itertools
def findsubsets(s, n):
   return [set(i) for i in itertools.combinations(s, n)]
# Driver Code
s = {1, 2, 3, 4, 5}
n = 4
print(findsubsets(s, n))

輸出

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

結論

在本文中,我們已經瞭解瞭如何獲得一個集合中所有給定大小的子集

更新於:24-12-2019

735 次觀看

開啟您的 職業

完成課程獲得認證

開始
廣告
© . All rights reserved.