本文摘自php中文网,作者不言,侵删。
本篇文章给大家带来的内容是关于python中找到最大或最小的N个元素的实现代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。1、需求
我们想在某个集合中找出最大或最小的N个元素
2、解决方案
heapq模块中有两个函数:nlargest()和nsmallest()
代码:
1 2 3 4 | import heapq
nums=[1,444,66,77,34,67,2,6,8,2,4,9,556]
print (heapq.nlargest(3,nums))
print (heapq.nsmallest(3,nums))
|
结果:
这个两个函数都可以接受一个参数key,从而允许他们可以工作在更加复杂的数据结构上:
代码:
1 2 3 4 5 6 7 8 9 10 11 12 | import heapq
portfolio=[
{ 'name' : 'IBM' , 'shares' :100, 'price' :91.1},
{ 'name' : 'AAPL' , 'shares' :50, 'price' :543.22},
{ 'name' : 'FB' , 'shares' :200, 'price' :21.09},
{ 'name' : 'HPQ' , 'shares' :35, 'price' :31.75},
{ 'name' : 'YHOO' , 'shares' :45, 'price' :16.35},
]
cheap=heapq.nsmallest(3,portfolio,key=lambda s:s[ 'price' ])
expensive=heapq.nlargest(3,portfolio,key=lambda s:s[ 'price' ])
print (cheap)
print (expensive)
|
结果:
1 2 | [{ 'name' : 'YHOO' , 'shares' : 45, 'price' : 16.35}, { 'name' : 'FB' , 'shares' : 200, 'price' : 21.09}, { 'name' : 'HPQ' , 'shares' : 35, 'price' : 31.75}]
[{ 'name' : 'AAPL' , 'shares' : 50, 'price' : 543.22}, { 'name' : 'IBM' , 'shares' : 100, 'price' : 91.1}, { 'name' : 'HPQ' , 'shares' : 35, 'price' : 31.75}]
|
如果只是简单的查找最小或者最大的元素(N=1),那么使用min()和max()会更快。
以上就是python中找到最大或最小的N个元素的实现代码的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python 2.7与Python 3.7区别
在Python中列表,数组,矩阵互相转换的方法
Python中的any函数是什么?如何使用any函数?
Python怎么下载64位的
Python中append的用法
Python中tornado协程的使用详解(附实例)
Python如何生成马赛克画?生成马赛克画的方法(代码详解)
Python获取昨天、今天、明天开始、结束时间戳的方法
Python怎么打开网页
Python中什么是对象
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » python中找到最大或最小的N个元素的实现代码