Re: [問題] 列出一個列表中所有子集合已刪文
# 想法: 使用遞迴
# foo([1, 2]) 包含 [] , [1] , [2] , [1, 2]
# foo([1, 2, 3]) 包含 [] , [1] , [2] , [1, 2] --> 與上面相同
# 以及 [3], [1, 3], [2, 3], [1, 2, 3] --> 比上面多最後一項
# 最後再依照子元素的長度排序
def foo(ls: list) -> list:
if not ls:
return [[]]
return sorted(
foo(ls[:-1]) + [x + [ls[-1]] for x in foo(ls[:-1])],
key=len
)
※ 引述《rebe212296 (綠豆冰)》之銘言:
: 請問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],先謝謝版大的回答。
--
小野寺春が大好きだよ~
https://i.imgur.com/p7jq5X0.gif
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.138.97.185 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1670011302.A.F5D.html
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 5 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章