为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 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 关注
  • 92 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信