我的目标是在字典中的键之间建立所有可能的组合(以及一些其他无关紧要的规则),因此我编写了递归函数。
dict = {3: 54, 37: 100, 56: 33}
def dosomething(dict, indent, stop, position):
if dict == {} or stop <0:
return
keys = dict.keys()
for k in keys:
if k > position:
print indent, k
dosomething(dict, indent + " ", stop -1, k)
indent = " "
dosomething(dict, indent, 4, 0)
打印结果显示我想要的值:
56
3
56
37
56
37
56
但现在我想将它们放在元素将位于的列表列表中:
[56]
[3,56]
[3,37,56]
[37,56]
有人可以帮助我吗?
以下将生成所有可能的按键组合的列表
import itertools
dict = {3: 54, 37: 100, 56: 33}
combos = []
for i in range(len(dict.keys())):
combos.extend([sorted(l) for l in itertools.combinations(dict.keys(), i+1)])
print combos
将返回:
[[56], [3], [37], [56, 3], [56, 37], [3, 37], [56, 3, 37]]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句