Python:列表的一部分

时间:2017-12-30 20:44:18

标签: python list sum

鉴于列表,我如何找到列表的一部分?例如:

a = [2,5,4,6,8]
sum(a) = 25

我想知道列表的一部分是否总和到一定数量 列表部分应该有一定的长度。这是我的目标:

ex_list = [2,5,4,6,8]
dif_list = partsum(ex_list, 3)
print(dif_list) ==> [11, 13, 15, 12, 14, 16, 15, 17, 19, 18]

'dif_list'中的每个元素都是通过从'ex_list'中取出3个数字并将它们相加得出的,即2 + 5 + 4 = 11,2 + 5 + 6 = 13,2 + 5 + 8 = 15, 2 + 4 + 6 = 12等。
也供参考:

ex_list = [2,5,4,6,8]
another_list = partsum(ex_list, 4)
print(another_list) ==> [17, 19, 21, 20, 23]

因为2 + 5 + 4 + 6 = 17,2 + 5 + 4 + 8 = 19等 基本上,partum(thing,num)将'num'项目的'thing',总结起来,并将其附加到新列表中。感谢所有帮助,谢谢!

1 个答案:

答案 0 :(得分:3)

你想要itertools.combinations

import itertools

lst = [2,5,4,6,8]
combos = itertools.combinations(lst, 3)
# combos is equivalent to
# [ [2, 5, 4], [2, 5, 6], [2, 5, 8],
#   [2, 4, 6], [2, 4, 8], [2, 6, 8],
#   [5, 4, 6], [5, 4, 8], [5, 6, 8],
#   [4, 6, 8] ]
result = [sum(combo) for combo in combos]