**很簡單,不過想法特別好,在學習python的過程中看見了,於是就把他記錄下來。
演算法是利用遞迴的思想來實現返回集合的所有子集(如果想要對子集長度進行限制,引數加個limit就行了)
def allsubsets(s):
if len(s) == 0 :
return
return allsubsets(s[1:]) + [[s[0]] + r for r in allsubsets(s[1:])]
s=(1,4,5)
x=allsubsets(s)
print(x)
#測試結果:
[, [5], [4], [4, 5], [1], [1, 5], [1, 4], [1, 4, 5]]
my homepage
ps:過河問題
返回某整數集合的所有子集
題目 程式設計師面試金典 第5版 p226 編寫乙個方法,返回某集合的所有子集 方法一 迭代法,每增加乙個元素,就在已生成子集的基礎上,給每乙個子集新增該元素,形成新的子集。vector vector getsubsets vectornum if num.empty vectortmp tmp.p...
Python 查詢返回所有下標
返回所有符合條件的下標,自然想到的是用列表解析 list comprehension 並在列表解析中增加乙個斷言 if pred,是否符合條件 那麼又該如何返回其下標呢,是使用 index 成員函式嗎?比如,我們要獲取列表中所有元素為 0 的下標 l 0,2,0 l.index l for i in...
python集合所有常用的方法
定義a集合和b集合 a b 基本操作 新增元素 a.add 6 print a 新增多項 a.update 11,22,33,44 print a 刪除 remove pop discard a.remove 1 刪除不存在的元素會報錯 a.pop 隨機刪除 a.discard 10 刪除不存在的元...