python中将一个任意长度,元素皆为整数的list,任意个相邻的数可以组成新的list,求新list元素和最大值?

例如[5,3,7,-3,4],可以拆分出10个小list[5,3],[3,7],[7,-3],[-3,4],[5,3,7],[3,7,-3],[7,-3,4],[5,3,7,-3],[3,7,-3,4]其中list元素和为8,10,4,1,15,7,8,12,11。最大值为15。
如何用python实现这种算法?
包括原列表本身,即例子中的[5,3,7,-3,4],其元素和为16,因此最大值为16。

max([sum(l[i:j+2]) for i in range(0,len(l),1) for j in range(i,len(l),1)])
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-08-31
a = [5,3,7,-3,4]
max_group = 0
print('all group are:')
for j in range(2,len(a)+1):
i = 0
while j <= len(a):
t = a[i:j]
m_s = sum(t)
if max_group < m_s:
max_group = m_s
max_sum_group = {max_group:t}
print(t)
j += 1
i += 1

print('the max sum group is :')
print(max_sum_group)

相似回答