Python技巧之返回列表中最接近元素n的k个元素
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() 函数会更有效率。
本文来自博客园,作者:micromatrix,转载请注明原文链接:https://www.cnblogs.com/cenjw/p/python-skill-nsmallest.html
posted on 2022-04-17 14:21 micromatrix 阅读(110) 评论(0) 编辑 收藏 举报