[英]Return a list with index of highest sum of numbers and the sum of the values python
我一直在研究一个函数,该函数将nums的二维列表作为参数,并返回一个列表,其中包含具有最高值和这些值之和的行的索引。 据我所知。 我已经尝试过累加器,如果[i] +1> i:但不断收到错误消息只能使列表无效,而不能使int无效。 我尝试在newList中添加j:并且打印了太多数字,有人可以帮帮我。 1年级程序员,真的很固执。 当我使用最大错误是不可迭代的。
def FindLargestRow(lsts):
newList=[]
for i in lsts:
newList.append(sum(i))
return newList
print(FindLargestRow([[1,2,3],[1,2,3,4,5],[1,2],[1,2,3,4]]))
print()
理想的结果是:
启动FindLargestRow [1,15]
您可以使用max和index函数:
maxList = max(newList)
return newList.index(maxList), maxList
您可以将sum()映射到列表中并找到最大和。 使用该索引,您可以找到具有最大总和的列表的索引。
def FindLargestRow(lsts):
s=map(sum,lsts)
return s.index(max(s)),max(s)
那是,
>>> d=[[1,2,3],[1,2,3,4,5],[1,2],[1,2,3,4]]
>>> map(sum,d)
[6, 15, 3, 10]
>>> s=map(sum,d)
>>> s
[6, 15, 3, 10]
>>> max(s)
15
>>> s.index(max(s))
1
>>> d[s.index(max(s))]
[1, 2, 3, 4, 5]
尝试以下操作,该操作使用2D数组来跟踪最高总和:
def FindLargestRow(lsts):
lengths = []
for i in lsts:
lengths.append([i, sum(i)])
return max(lengths, key=lambda x:x[1])[0]
>>> print(FindLargestRow([[1,2,3],[1,2,3,4,5],[1,2],[1,2,3,4]]))
[1, 2, 3, 4, 5]
您可以尝试以下方法:
the_list = [[1,2,3],[1,2,3,4,5],[1,2],[1,2,3,4]]
new_list = map(sum, the_list)
return [[i for i in range(len(the_list)) if sum(the_list[i]) == max(new_list)][0], max(new_list)]
def FindLargestRow(lsts):
largestSize=0
largestRow=0
for i in range(0,len(lsts)):
if sum(lsts[i])>=largestSize:
largestRow = i
largestSize = sum(lsts[i])
return [largestRow,largestSize]
print(FindLargestRow([[[1,2,3],[1,2,3,4,5],[1,2],[1,2,3,4]]))print()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.