我有一個基本案例要處理,它是創建字典并將其子集打印到列表中。我試過itertools、chain和組合;from itertools import chain, combinationsdict = {1,2,3}def powerset(iterable): s = set(dict) return chain.from_iterable(combinations(s,r) for r in range(len(s)+1))set(powerset("dict"))這段代碼給出:{(), (1,), (1, 2), (1, 2, 3), (1, 3), (2,), (2, 3), (3,)}我期望這個:[{}, {1}, {1, 2}, {1, 2, 3}, {1, 3}, {2}, {2, 3}, {3}]
2 回答

搖曳的薔薇
TA貢獻1793條經驗 獲得超6個贊
首先,您正在dictionaries
與sets
. 其次,強烈建議不要將變量命名為與 python 關鍵字或方法相同的名稱,就像您在此處使用dict
. 現在,來自 itertools 的所有函數都返回一個以tuple
s 為元素的可迭代對象。因此,您需要將它們轉換回集合。
[set(subset) for subset in powerset(dict)]
添加回答
舉報
0/150
提交
取消