有没有一种很酷的方法可以递归遍历dict以获得sum(values)的所有组合:
我有一个字典 {a: 10, b: 20, c:30}
我想找到所有二元组和三元组的唯一组合(值的总和):
例如两个
30 # 10 + 20
40 # 10 + 30
50 # 20 + 30
对于三分球也是如此:
60 # 10 + 20 + 30
请您参考如下方法:
对于您提供的示例输入,您可以使用 map、sum 和 itertools.combinations 的组合:
d = {'a': 10, 'b': 20, 'c':30}
import itertools
print map(sum, itertools.combinations(d.values(), 2))
print map(sum, itertools.combinations(d.values(), 3))
或者,在 Python3 中:
d = {'a': 10, 'b': 20, 'c':30}
import itertools
print(list(map(sum, itertools.combinations(d.values(), 2))))
print(list(map(sum, itertools.combinations(d.values(), 3))))
打印:
[40, 30, 50]
[60]
