亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Python 中創建一個接收數字列表并返回該數組中兩個最大數字之和的函數?

如何在 Python 中創建一個接收數字列表并返回該數組中兩個最大數字之和的函數?

慕神8447489 2023-07-05 10:03:09
我想出了這樣的事情: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:])


查看完整回答
反對 回復 2023-07-05
?
至尊寶的傳說

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]將是倒數第二個元素,依此類推。

冒號意味著我們獲取列表的一部分,而不僅僅是單個元素。


查看完整回答
反對 回復 2023-07-05
  • 2 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號