技术标签: Python中使用heapq模块找到最大或最小的N个元素 python 列表 数据结构
这两个函数分别有三个参数,分别为n, iterable, key
'''
Author:爱吃跳跳糖的小怪兽
time:2020-8-27
Version:1.0
'''
import heapq
List_Example1 = [-100, 2, 5, 7, -78, 85, 56, -21, 0] #假定一个无序的整数列表需要进行数据提取
print(heapq.nlargest(3,List_Example1))
print(heapq.nsmallest(3,List_Example1))
代码块
'''
Author:爱吃跳跳糖的小怪兽
time:2020-8-27
Version:1.0
'''
import heapq
achievements = [
{'name':'xu', 'data':98},
{'name':'yuan', 'data':95},
{'name':'qi', 'data':99},
{'name':'shuai', 'data':45},
{'name':'ge', 'data':70}
]
print(heapq.nsmallest(3,achievements))
print(heapq.nlargest(3,achievements))
报错截图:
错误分析:程序抛出了一个类型错误,表示不支持对两个字典进行比较。
解决方法:对key值进行设定,这里使用lamda匿名函数将data键对应的值传返回至key值中,比对各个字典中的data数据以进行排列。
'''
Author:爱吃跳跳糖的小怪兽
time:2020-8-27
Version:1.0
'''
import heapq
achievements = [
{'name':'xu', 'data':98},
{'name':'yuan', 'data':95},
{'name':'qi', 'data':99},
{'name':'shuai', 'data':45},
{'name':'ge', 'data':70}
]
print(heapq.nsmallest(3,achievements,key=lambda x:x['data']))
print(heapq.nlargest(3,achievements,key=lambda x:x['data']))
输出结果截图:
在使用heapq模块的nlargest()和nsmallest()函数进行数据查找时,需要先行判断数据类型,考虑是否设定key值,以确保函数的正常运行。
融云 iOS SDK 体系架构本文档将详细介绍融云的 SDK 产品架构和消息体系,以便于您更深入的了解融云并更快速的开发自己的产品。融云 SDK 系统架构IMKitIMKit 的功能主要是封装各种界面对象,服务于开发者快速实现自己的产品,主要特点是是支持快速集成,支持丰富的界面定制功能。IMLibIMLib 的功能是提供基本通信能力库,封装了
背景介绍:从之前的设计模块方面来思考,人工智能这个项目里面的上传功能应该如何完善成一个真正的微服务,之前的调用链是批量的上传功能依赖单张入库的功能,而这里的单张入库的功能是一个单独的服务,其实这里的单张入库的模块,需要进行改造。方案:把单张入库的模块进行改造,提取公共的模块,减少对象的冗余,以及避免数据库表对象的完全暴露,提高安全意识。从单张人脸特征入库的模块来分析,这个服务只要是依赖了算法的...
参考文章:http://ourmysql.com/archives/1359?utm_source=tuicool&utm_medium=referral官方:https://github.com/box/Anemometer单节点Anemometer监控1 安装anemometer#cd/data/www/web3#gitclonehttps://git...
本文讲述SQL Server、Oracle、MySQL查出值为NULL的替换。AD:2014WOT全球软件技术峰会北京站 课程视频发布在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1、MSSQL: ISNULL() 语法 ISNULL ( check_expression , replacement_value ) 参数 ch
tomcat 启动老是报错,可以发布web项目,但是tomcat的webapps目录下根本就没有这个web项目,郁闷很久了,网上搜了很多的方法,有人说,把webapps下的文件全部删除,并且把work,logs下的目录删除,再重新启动tomcat ,可是问题依旧。。。最后直接把tomcat卸载,重新安装了一遍,这样果然就可以了,最好要把重新安装的tomcat放在不同于上一个tomcat文件夹下,重
新装的centos,由于显卡不兼容,先安装的命令行界面,然后再安装的图形化界面,root下能使用startx开启图形化界面,但是普通用户不行。 解决方法如下:[swmwlm@localhost root]$ su rootPassword:[root@localhost ~]# chmod -R 777 /tmp[root@localhost ~]# touch /var/r...
if ( $host = '56zx.com' ){ rewrite ^/(.*)$ http://www.56zx.com/$1 permanent;}将不带www的域名重定向到带www的域名,规则如下:if($host='56zx.com'){ rewrite ^/(.*)$ http://www.56zx.com/$1 permanent;}原因是nginx语_nginx 判断host
实体package com.yanzhen.po;import lombok.Data;@Datapublic class Dic { private Integer id; private String name; private String pName;}Daopackage com.yanzhen.dao;import com.yanzhen.po.Dic;import java.util.List;public interface DicDa_layui 表格+ thymeleaf 联动下拉框
源码下载简介书中的一个经典实例,在此摘录出来,让C++此方面编程的朋友可以更容易的找得到,压缩包内有3种识别技术的算法实例,需要慢慢研究哦。源码下载地址:点击下载备用下载地址:点击下载...
1.打开网页家庭/学校免费 - NetSarang Website (xshell.com)2.输入邮箱3.登录邮箱 下载Xshell 和 Xftp4.下载好后 不用删除之前的版本,它会自动替换5.不过它是教育版_xshell教育版
我的新课《C2C 电商系统微服务架构120天实战训练营》在公众号儒猿技术窝上线了,感兴趣的同学,可以长按扫描下方二维码了解课程详情:课程大纲请参见文末目录: ..._分库导致并发访问量怎么样
tensorflow中RMSprop优化器运用RMSprop优化器引用API:tf.keras.optimizers.RMSprop代码实现:#RMSpropbeta = 0.9 #定义超参数,经验值为0.9v_w = beta * v_w + (1 - beta) * tf.square(grads[0]) #求二阶动量v_wv_b = beta * v_b + (1 - beta) * tf.square(grads[1]) #求二阶动量v_b..._keras rmsprop的超参数