编写一个以列表作为参数的函数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
答案 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)