[問題] 列出一個列表中所有子集合

看板Python作者 (綠豆冰)時間2年前 (2022/11/26 16:09), 編輯推噓0(003)
留言3則, 2人參與, 2年前最新討論串1/5 (看更多)
請問list的子集合如何求出,我想做的是投入一列表可以return其子集的函式 nums=[1,2,3] #這是想要的結果 [[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]] #想法:每抽出1,2,3,幾個元素,便存成一個list def NS(list): S=[] j=len(list) for i in list: S.append([i]) while(j>=0): S.append(list[:j]) S.append(list[j:]) j-=1 return S print(NS(nums)) #這個結果是 [[1], [2], [3], [1, 2, 3], [], [1, 2], [3], [1], [2, 3], [], [1, 2, 3]] 可是我求不出[1, 3],先謝謝版大的回答。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.37.1 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1669450199.A.FDA.html

11/26 16:55, 2年前 , 1F
原始code是把list從頭到尾切兩邊再append,並不是組合
11/26 16:55, 1F

11/26 16:56, 2年前 , 2F
可以查一下itertools.combinations
11/26 16:56, 2F

11/26 18:00, 2年前 , 3F
leetcode 78. Subsets 就是你要的
11/26 18:00, 3F
文章代碼(AID): #1ZWSdN_Q (Python)
文章代碼(AID): #1ZWSdN_Q (Python)