Python代码阅读(第56篇):获取列表的前n个最大/最小值
2021-10-15 本文已影响0人
FelixZzzz
Python 代码阅读合集介绍:为什么不推荐Python初学者直接看项目源码
本篇阅读的代码分别获取列表的前n
个最大/最小值。
本篇阅读的代码片段来自于30-seconds-of-python。
max_n
def max_n(lst, n=1):
return sorted(lst, reverse=True)[:n]
# EXAMPLES
print(max_n([1, 2, 3])) # [3]
print(max_n([1, 2, 3], 2)) # [3,2]
max_n
函数接收一个列表和取值个数n
,返回列表前n
个最大数组成的列表。
函数使用sorted()
函数和列表切片获取列表前n
个最大数组成的列表。
sorted(iterable, *, key=None, reverse=False)
根据iterable
中的项返回一个新的已排序列表。它具有两个可选参数,它们都必须指定为关键字参数。key
指定带有单个参数的函数,用于从iterable
的每个元素中提取用于比较的键 (例如key=str.lower
)。 默认值为 None (直接比较元素)。reverse
为一个布尔值。 如果设为True
,则每个列表元素将按反向顺序比较进行排序。
min_n
def min_n(lst, n=1):
return sorted(lst, reverse=False)[:n]
# EXAMPLES
min_n([1, 2, 3]) # [1]
min_n([1, 2, 3], 2) # [1,2]
min_n
函数接收一个列表和取值个数n
,返回列表前n
个最小数组成的列表。
函数和max_n
类似,只需要将sorted()
的reverse
设置为False
,使排序的方向相反即可。