вывод суммы комбинаций Python - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть список чисел, и я хочу экспортировать список, показывающий сумму каждой комбинации этих чисел.

так

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 голосов
/ 12 февраля 2019

Вы можете использовать набор понимания:

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]
0 голосов
/ 12 февраля 2019

Используйте 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]
>>> 
...