组合python sum输出

时间:2019-02-12 09:44:15

标签: python combinations

我有一个数字列表,我想导出一个列表,显示这些数字的每个组合的总和。

如此

x=[1,2,3]

output=[

1,
2,
3,
4,
5,
6]

这可能吗?

x=[1137
,85
,15
,314
,4824
,21
,81
,63
,4514
,110
,51
,1
,1048
,13
]

def combs(s, lengths):
    return chain.from_iterable(combinations(s,l) for l in lengths)

a=list((combs(x, list(range(len(x))))))

2 个答案:

答案 0 :(得分:1)

使用itertools.combinations

>>> import itertools
>>> x=[1,2,3]
>>> x+(list(map(sum,itertools.combinations(x,2)))[1:]+list(map(sum,itertools.combinations(x,3))))
[1, 2, 3, 4, 5, 6]
>>> 

答案 1 :(得分:1)

您可以使用设定的理解力:

from itertools import combinations
list({sum(c) for i in range(1, len(x) + 1) for c in combinations(x, i)})

这将返回:

[1, 2, 3, 4, 5, 6]