如何在 Python 中创建一个接收数字列表并返回该数组中两个最大数字之和的函数?

我想出了这样的事情:


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

有什么帮助吗?


慕神8447489
浏览 93回答 2
2回答

慕的地10843

只需使用内置方法排序对数组进行排序,然后取出排序中的最后 2 个元素(按升序)并使用内置方法 sum 将它们求和:def&nbsp;sumLargestNumbers(x): &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;sum(sorted(x)[-2:])

至尊宝的传说

def sumLargestNumbers(arr):&nbsp; &nbsp; 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]将是倒数第二个元素,依此类推。冒号意味着我们获取列表的一部分,而不仅仅是单个元素。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python