我想出了这样的事情:def sumLargestNumbers (x): for largest_integer in x: largest_integer = max(sumLargestNumbers) integers.remove(largest_integer) return (sum(largest_integer, integers.remove))但它给了我这个错误:TypeError Traceback (most recent call last) <ipython-input-15-2b77832140c8> in <module> 1 x = [1, 10]----> 2 print(sumLargestNumbers([1, 10])) <ipython-input-14-b3557ee34db3> in sumLargestNumbers(x) 1 def sumLargestNumbers (x): 2 for largest_integer in x:----> 3 largest_integer = max(sumLargestNumbers) 4 integers.remove(largest_integer) 5 return (sum(largest_integer, integers.remove))TypeError: 'function' object is not iterable有什么帮助吗?
2 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
只需使用内置方法排序对数组进行排序,然后取出排序中的最后 2 个元素(按升序)并使用内置方法 sum 将它们求和:
def sumLargestNumbers(x): return sum(sorted(x)[-2:])
至尊宝的传说
TA贡献1789条经验 获得超10个赞
def sumLargestNumbers(arr):
return sum(sorted(arr)[-2:])
print(sumLargestNumbers([4,5,6]))
# returns 11
阅读有关切片的内容;[-2:] 部分选择列表的最后两项。
Python 在很多地方使用 [start:step:stop] 表示法,其中之一是列表索引。在这里,它只是 [start:],因为我们想要默认的停止点和步长(分别是直到结束和 1)。
这里的另一个技巧是负索引。这基本上意味着我们从末尾开始计数。my_list[-1]将是最后一个元素,my_list[-2]将是倒数第二个元素,依此类推。
冒号意味着我们获取列表的一部分,而不仅仅是单个元素。
添加回答
举报
0/150
提交
取消