我想出了這樣的事情: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
提交
取消