【Python】快捷找到最大最小 N 个元素

news2024/11/13 9:39:57

heapq

  • 简单数据结构取出最大最小N个元素
  • 复杂数据结构中取出最大最小N个元素
  • 代码解析:`lambda`

Python 中有 heapq 模块可以快捷找到数组中最大最小的 N 个元素;

heapq.nlargest(num, arr)		# 从arr数组中取出最大num个元素
heapq.nsmallest(num, arr)		# 从arr数组中取出最小num个元素

简单数据结构取出最大最小N个元素

e . g . 1 e.g.1 e.g.1 分别取出一维数组中最大和最小的3个元素;

import heapq

nums = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2]
print(heapq.nlargest(3, nums))
print(heapq.nsmallest(3, nums))

在这里插入图片描述


复杂数据结构中取出最大最小N个元素

e . g . 2 e.g.2 e.g.2 复杂的数据结构,依据 price 字段分别取出字典数组中最大最小的3个字典;

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},
    {'name': 'ACME', 'shares': 75, 'price': 115.65}
]
print(heapq.nlargest(3, portfolio, key=lambda s: s['price']))
print(heapq.nsmallest(3, portfolio, key=lambda s: s['price']))

在这里插入图片描述


代码解析:lambda

在 Python 中,lambda 是一个关键字,用于创建匿名函数。所谓的匿名函数是指没有名字的函数,它们通常用于简短的、一次性的任务。lambda 函数的语法非常简洁:

lambda arguments: expression

lambda 函数接受一个或多个参数( arguments ),并且返回一个表达式的值( expression )。这里的表达式通常只包含一个操作数,并且返回该操作数的值。

在上述代码中:

print(heapq.nlargest(3, portfolio, key=lambda s: s['price']))

这行代码的意思是:

  1. 使用 heapq 模块的 nlargest 函数。
  2. portfolio 列表中找出最大的三个元素。
  3. 使用 lambda s: s['price'] 作为排序的键值(即根据每个字典元素中 'price' 键的值进行排序)。

因此,这个 lambda 函数在这里的作用是指定排序的依据,即每个字典元素中的 'price' 值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1516334.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

matplotlib-柱状图

日期:2024.03.14 内容:将matplotlib的常用方法做一个记录,方便后续查找。 # from matplotlib import pyplot as plt# 设置画布大小 plt.figure(figsize(20,8),dpi 300)# 全局设置中文字体 plt.rcParams[font.sans-serif] [Simhei]# 绘制三…

2024年1月粮油调味行业分析(TOP品牌/店铺/商品销售数据分析)

鲸参谋监测的某东1月份粮油调味市场销售数据已出炉! 根据鲸参谋电商数据分析平台显示,今年1月份,某东平台上粮油调味品的销量约6200万件,环比上个月增长45%,同比去年下滑15%;销售额约25亿元,环…

宝妈在家带孩子还是出去工作?足不出户,两者如何兼顾?

我是电商珠珠 很多女性生完孩子之后,就在家当家庭主妇带孩子。部分人舍不得吃穿,把从老公那里要来的钱都给孩子买了东西。自己也想过要出去工作,但是空窗期太久,觉得自己什么都不会,没有企业会要。 前段时间有一个硕…

CUDA下载安装与配置

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 CUDA是什么? CUDA(Compute Unified Device Architecture)是由NVIDIA推出的并行计算平台和编程…

sqllab第十二关通关笔记

知识点: 一般字符型注入分类 单引号闭合双引号闭合这是一个双引号闭合 看界面又是一个输入框的注入;通过admin admin进行登录发现页面还是有回显 直接使用万能密码尝试 构造payload:usernameadminor11 没有任何反应;可能是没加注释符的关闭 构造user…

npm yarn 一起使用报错

项目记录,具有独特性,仅供参考 项目好好的运行,前一天装个测试工具包, 突然就不行了,卸载重装也不行,所有的项目都安装失败,新起一个项目也不行,有时候某个单独安装一个包可以&…

C# 连接neo4j数据库,包括非默认的neo4j默认库

官方文档没找见,自己在源码里面找到的 private string _dbHost "bolt://localhost:7687"; private string _dbUser "neo4j"; private string _dbPassword "******"; private IDriver? _driver;public CQLOperation(string _data…

采购代购系统独立站,接口采集商品上货

采购代购系统独立站的建设与商品上货接口的采集是一个综合性的项目,涉及前端开发、后端开发、数据库设计以及API接口的对接等多个环节。以下是一个大致的步骤和考虑因素: 一、系统规划与需求分析 明确业务需求:确定代购系统的核心功能&…

有没有图像转3D模型的软件?

云端地球是一款免费的在线实景三维建模软件,不需要复杂的技巧,只要需要手机,多拍几张照片,就可以得到完整的三维模型! 无论是大场景倾斜摄影测量还是小场景、小物体建模,都可以通过云端地球将二维数据向三…

Windows系统下载安装Emby结合内网穿透实现公网访问本地影音网站

文章目录 1.前言2. Emby网站搭建2.1. Emby下载和安装2.2 Emby网页测试 3. 本地网页发布3.1 注册并安装cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar内网穿透本地设置 4.公网访问测试5.结语 1.前言 在现代五花八门的网络应用场景中,观看视频绝对是主力应用场景之一&…

Python实现BOA蝴蝶优化算法优化BP神经网络分类模型(BP神经网络分类算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算…

*地宫取宝c++

题目 输入样例1: 2 2 2 1 2 2 1输出样例1: 2输入样例2: 2 3 2 1 2 3 2 1 5输出样例2: 14 思路 题目说从入口开始,只能向右或向下行走到达右下角,类似“摘花生”这道题的模型。题目又说只有当格子里的宝…

Linux编程4.5 网络编程-套接字(Socket)

1、简介 Socket(套接字)是一种通讯机制,它包含一整套的调用接口和数据结构的定义,它给应用进程提供了使用如TCP/UDP等网络协议进行网络通讯的手段。 Linux中的网络编程通过Socket接口实现,Socket既是一种特殊的IO,提供对应的文件…

JS向指定位置添加元素

内容参考来源 splice方法 splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。 //在数组指定位置插入 var fruits ["Banana", "Orange", "Apple", "Mango"]; fruits.splice(2, 0, "Lemon", "…

号外!全球首位AI软件工程师:Devin 来了

Cognition 实验室发布全球首位AI软件工程师 :Devin 目前Devin已经成功通过了顶尖 AI 公司的实际工程面试,并在 Upwork 上完成了真实工作。 Devin具有完全自主能力,可以通过使用自己的 Shell、代码编辑器和网络浏览器解决工程任务。 Devin是什…

非凡的壁炉

下一代卓越的壁炉是高端、现代、环保和 100% 安全的壁炉。它们融合了源自当代先进技术的创新功能。离子壁炉冷焰和自动酒精壁炉为设计师和室内建筑师提供了非凡的装饰工具。它们允许以令人难以置信的各种风格创造非凡的壁炉。如今,火摆脱了传统的束缚,在…

深度学习技巧总结

1、监控GPU使用情况 pip install nvitopnvitop -m fullhttps://zhuanlan.zhihu.com/p/577533593 2、本地拉取服务器上tensorboard数据并进行可视化显示 https://blog.csdn.net/Thebest_jack/article/details/125609849 3、服务器打不开pycharm软件 这个是已经有一个软件在运…

[剪藏] - 由哇哈哈和农夫山泉所想到的

哇哈哈和农夫山泉的缠斗最近冒出来一个有趣的点:营销大于内容的胜利。 具体来说是这样的:农夫山泉很多年前做广告,说纯净水没有矿物质,长期喝是不利于人体健康的。农夫还做了个营销的对比实验,大概是用矿泉水养水仙花&…

Word中解决插入脚注导致的分页位置错误问题

先放一个截图: 上面的截图中,样式为标题3的段落“四、固执的念头”前插入了连续型分节符,并且该分节符的样式为正文,前后的正文段落中有脚注,结果在分页时,标题3段落“四、固执的念头”后的正文段落自动进入…

使用docker-compose部署MySQL三主六从半同步集群(MMM架构)

文章目录 🔊博主介绍🥤本文内容部署MySQL三主六从半同步集群一主二从同步集群规划需要安装docker和docker-compose命令形式安装安装docker安装docker-compose 宝塔面板形式安装 部署node1节点的master1docker-compose.yaml文件my.cnf文件授权启动 部署no…