为了账号安全,请及时绑定邮箱和手机立即绑定

如何打印字典的所有子集?

如何打印字典的所有子集?

梦里花落0921 2022-06-28 10:16:31
我有一个基本案例要处理,它是创建字典并将其子集打印到列表中。我试过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个赞

首先,您正在dictionariessets. 其次,强烈建议不要将变量命名为与 python 关键字或方法相同的名称,就像您在此处使用dict. 现在,来自 itertools 的所有函数都返回一个以tuples 为元素的可迭代对象。因此,您需要将它们转换回集合。

[set(subset) for subset in powerset(dict)]


查看完整回答
反对 回复 2022-06-28
?
噜噜哒

TA贡献1784条经验 获得超7个赞

改变这个,

set(powerset("dict"))

>>> [set(value) for value in powerset("dict")]


查看完整回答
反对 回复 2022-06-28
  • 2 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号