Python程序找到最大的一组列表

Python programme to find largest sum of group of lists

这是我上一个问题的附加内容。我想回答的问题是:

我有一个整数列表,代表市中心商业街上n家企业(商店)的年利润(单位:千欧元)。我得到了4(四)个业务("免费"),这是邻居彼此。问题是要计算出我应该拿哪四个来最大化我的年利润。给定这些数字,编写一个python程序来计算我应该取哪个4。举个例子:如果利润是52,67,-8,43,-20,我应该选择前4个业务。如果利润是-20、36、-10、-30、3、21,我就不做生意了。

第二次尝试:

1
2
groups =      zip(mylist,mylist[1:25,34,-2,-57],mylist[2:-8,47,28,19],mylist[3:47,-57,54,-96],mylist[4:-1,73,38,39],mylist[5:76,-49,6,-3],mylist[6:9,-7,-99,28],mylist[7:37,88,74,-3],mylist[8:23,-2,-5,78],mylist[9:38,-9,31,32],mylist[10:32,-58,66]
     Answer = max(sum(groups))

然后它告诉我"answer"是无效语法。我不知道如何完成,请帮忙?


sum总结了清单。你有一个列表,所以它不知道你真的想把列表中的列表加起来。

你可以通过列表理解来做到:

1
summedlists = [sum(mylist) for mylist in groups]

map

1
summedlists = map(sum, groups)

现在,summedlists是一个合计列表。其最大值为

1
maxval = max(summedlists)

这个元素的索引是

1
maxi = summedlists.index(maxval)

如果您想要四大商店的索引和值:

1
top4 = sorted(list(enumerate(summedlists)), key = lambda x: x[1])[:4]


第一行缺少一个结束的)