您的位置:首页 > 编程语言 > Python开发

Python技巧之返回列表中最接近元素n的k个元素

2022-04-17 14:21 561 查看

heapq.nsmallest(n, iterable, key=None)
从 iterable 所定义的数据集中返回前 n 个最小元素组成的列表。

如果提供了 key 则其应指定一个单参数的函数,用于从 iterable 的每个元素中提取比较键 (例如 key=str.lower)。 等价于: sorted(iterable, key=key)[:n]

nums = [-4,-2,1,4,8]; n=0
from heapq import nsmallest
# 返回最接近n的前两个数
res = nsmallest(2, nums, key=lambda x: abs(x-n))
print(res)  # [1,-2]

同理,

heapq.nlargest(n, iterable, key=None)
:返回前 n 个最大元素组成的列表。

两个函数在 n 值较小时性能最好。 对于更大的值,使用 sorted() 函数会更有效率。 此外,当 n==1 时,使用内置的 min() 和 max() 函数会更有效率。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐