无法创建列表函数 - Python

时间:2017-05-24 22:45:36

标签: python

编写一个以列表作为参数的函数top_three,并返回三个最大元素的列表。例如,top_three([2,3,5,6,8,4,2,1]) == [8, 6, 5]。我的尝试:

def top_three(input_list):

sorted_list= sorted([input_list], reverse=True)

top_three = sorted_list[ :2]

return top_three

1 个答案:

答案 0 :(得分:3)

请勿将您的输入包装在list的其他图层中。

sorted_list= sorted([input_list], reverse=True)

应该是:

sorted_list = sorted(input_list, reverse=True)

或者它只是对一项list进行排序(包含提供的list的全部内容。)

旁注:对于真实世界的代码,只有use heapq.nlargest,它可以扩展到大输入和少量项目,以便比全局排序和切片更好地选择:

import heapq

def top_three(input_list):
    return heapq.nlargest(3, input_list)