初级任务:在某个集合中找出最大值或最小值(max / min)
>>> numbers = [1, 3, 5, 4, 2]
>>> print('最大值为:')
最大值为:
>>> print(max(numbers))
5
>>> print('最小值为:')
最小值为:
>>> print(min(numbers))
1
>>>
进阶任务:在某个集合中找出最大或最小的N个值
方法1:sort(按大小顺序排列最大或最小的N个值)
>>> numbers = [1, 3, 5, 4, 2]
>>> top_n = 2
>>> print('最大的 {} 个值为:'.format(top_n))
最大的 2 个值为:
>>> print(sorted(numbers)[-top_n:])
[4, 5]
>>> print('最小的 {} 个值为:'.format(top_n))
最小的 2 个值为:
>>> print(sorted(numbers)[:top_n])
[1, 2]
方法2:heapq.nlargest / heapq.nsmallest(按原顺序排列最大或最小的N个值)
>>> import heapq
>>> numbers = [1, 3, 5, 4, 2]
>>> top_n = 2
>>> print('最大的 {} 个值为:'.format(top_n))
最大的 2 个值为:
>>> print(heapq.nlargest(top_n, numbers))
[5, 4]
>>> print('最小的 {} 个值为:'.format(top_n))
最小的 2 个值为:
>>> print(heapq.nsmallest(top_n, numbers))
[1, 2]
>>>