查看原文
其他

Python代码阅读(第56篇):获取列表的前n个最大/最小值

FelixZzzz 没看点 2021-12-11

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([123])) # [3]
print(max_n([123], 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([123]) # [1]
min_n([123], 2# [1,2]

min_n函数接收一个列表和取值个数n,返回列表前n个最小数组成的列表。

函数和max_n类似,只需要将sorted()reverse设置为False,使排序的方向相反即可。

推荐阅读:


1. 技术公众号小白互助网络


2. Python代码阅读(第55篇):获取字典的所有键或所有值的列表


3. 小猫咪


👇分享技术与杂谈的个人兴趣公众号👇

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存