学习 Python operator 模块的 itemgetter

学习 Python operator 模块的 itemgetter

  • 0. 引言
  • 1. `itemgetter`函数说明
    • 1-1. 示例代码
    • 1-2. 多级排序

0. 引言

operator模块提供了一系列对操作符的函数化接口,例如:加法、乘法、比较操作等。

itemgetter函数是operator模块中的一个功能,它用于从其操作的对象中获取item。这在排序或者获取序列元素等操作中非常有用。

1. itemgetter函数说明

itemgetter函数创建一个可调用对象,该对象会从其接收的任何参数中获取item。

当你传递一个序列的索引给itemgetter时,它将返回一个函数,这个函数会从其接收的对象中获取给定索引的元素值。

1-1. 示例代码

from operator import itemgetter# 假设有一个学生列表,每个学生是一个包含姓名和分数的元组
students = [('Alice', 88),('Bob', 75),('Charlie', 92),('David', 78)
]# 使用 itemgetter 获取分数,用于排序
get_score = itemgetter(1)  # 创建一个函数,该函数从输入中获取索引为1的元素(即分数)# 使用 sorted 函数和 itemgetter 排序学生列表
sorted_students = sorted(students, key=get_score)print(sorted_students)
# 输出: [('Bob', 75), ('David', 78), ('Alice', 88), ('Charlie', 92)]

在这个示例中,itemgetter(1)创建了一个函数get_score,这个函数接收一个元组,并返回该元组的第二个元素(索引为1的元素,即分数)。然后,我们用这个函数作为sorted函数的key参数,来根据分数对学生列表进行排序。

1-2. 多级排序

itemgetter还可以接受多个索引,这样可以进行多级排序。例如:

data = [('Alice', 'Physics', 85),('Bob', 'Maths', 90),('Alice', 'Maths', 82),('Charlie', 'Physics', 88),('Bob', 'Physics', 95)
]# 首先按姓名排序,然后按科目排序
sorted_data = sorted(data, key=itemgetter(0, 1))print(sorted_data)

这将首先根据姓名排序,如果姓名相同,则按科目排序。itemgetter通过提供多个索引来实现这一点。

完结!

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

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

相关文章

【一】【SQL】表的增删查改(部分)

表之“增”操作 建表的操作 mysql> create table students(-> id int unsigned primary key auto_increment,-> sn int unsigned unique key,-> name varchar(20) not null,-> qq varchar(32) unique key-> ); Query OK, 0 rows affected (0.03 sec)mysql&g…

v-rep--addon--附加组件

附加组件汉化文档 官网 什么是addon 就是一个lua语言文件; 用户通过编写的lua文件来增加coppeliasim的功能。 addon的作用 通过用户编写的lua语言实现添加coppliasim功能。

Day01:Web应用架构搭建站库分离路由访问配置受限DNS解析

目录 常规的Web应用搭建 三种常规网站搭建模式 程序源码 中间件配置 数据库类型 文件访问路径 总结 章节知识点: 应用架构:Web/APP/云应用/三方服务/负载均衡等 安全产品:CDN/WAF/IDS/IPS/蜜罐/防火墙/杀毒等 渗透命令:文件…

Pytorch添加自定义算子之(1)-安装配置Eigen库

一、安装对应的ubuntu环境 推荐使用Docker FROM nvcr.io/nvidia/pytorch:23.01-py3 RUN pip install tensorboardX RUN pip install pyyaml RUN pip install yacs RUN pip install termcolor RUN pip install opencv-python RUN pip install timm0.6.12 WORKDIR /app COPY . …

Python入门必学:print函数--从基础语法到高级用法

Python入门必学:print函数–从基础语法到高级用法 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 👈 希望得到您…

2024 春招市场行情报告:鸿蒙人才遭“爆抢”

前言 2024年可以说是布道鸿蒙开发行业的最佳时机,华为在千帆启航仪式会中发布会中表示,已有200家头部企业加入原生开发当中,并且一直有高薪抢人的局面,这一信息已经引起业界很大关注。 因此有很多公司开始准备要招聘鸿蒙工程师&…

机器学习YOLO操作全流程​​编

YOLO介绍 Ultralytics YOLOv8,是最新的著名实时目标检测和图像分割模型。它基于深度学习和计算机视觉的最新进展,提供了无与伦比的速度和精度性能。由于其精简的设计,适用于各种应用,并且可以轻松适配不同的硬件平台,从边缘设备到云端API。 探索 YOLOv8 文档,这是一个全…

R语言【BIEN】——BIEN_occurrence_genus():从BIEN数据库下载特定属的观察记录。

Package BIEN version 1.2.6 Description BIEN_occurrence_genus() 从BIEN数据库下载特定属的观察记录。 Usage BIEN_occurrence_genus(genus,cultivated FALSE,new.world NULL,all.taxonomy FALSE,native.status FALSE,natives.only TRUE,observation.type FALSE,poli…

【MySQL】探索表结构、数据类型和基本操作

表、记录、字段 数据库的E-R(entity-relationship,实体-关系)模型中有三个主要概念: 实体集 、 属性 、 关系集 。 一个实体集对应于数据库中的一个表,一个实体则对应于数据库表 中的一行,也称为一条记录。…

【Linux基础】Linux自动化构建工具make/makefile

背景 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后…

ubuntu 安装jdk8

在Ubuntu上安装Java Development Kit (JDK) 8,可以通过以下两种方法进行: 方法一:通过PPA源安装Oracle JDK 8(不推荐,因为Oracle已停止对JDK 8的公开更新支持) 由于Oracle自2019年起对JDK 8的公共更新仅限…

2/26作业

1.link_stack.c #include "link_stack.h" //申请栈顶指针 top_p creat_top() { top_p top (top_p)malloc(sizeof(top_t)); if(topNULL) { printf("空间申请不成功\n"); return NULL; } top->len 0; top->…

18.openeuler OECA认证模拟题1

单选 1。openEuler 操作系统中,通过什么命令可以查看操作系统的版本信息() B A、uname B、cat /etc/os-release C、cat /etc/.kyinfo D、lscpu 2.系统启动的过程顺序正确的是() A A、BIOS自检-MBR中的引导装载程序启动-Linux内核运行-用户登录 B、BIOS自检-MBR中…

Android基础进阶 - RecyclerView列表加载多类型视图

你是否会经常见到在同一个 RecyclerView 列表中加载多种不同的布局效果?最近写了一篇 ConcatAdapter 相关内容,发现虽然之前一直在使用多类型视图列表,但从未记录过,故重新记录于此 RecyclerView基础 Android进阶之路 - Recycler…

亲密关系中的问题

陈海贤老师会帮你解答亲密关系里的典型问题。 用户丫丫: 我想请教一下老师,如果男朋友因为工作或是生活上的事情遇到了挫折而情绪低落,那么我应该怎么有效地安慰他? 答:你想安慰他,其实这件事对于你男朋友…

leet hot 100-6 三数之和

三数之和 原题链接思路代码 原题链接 leet hot 100-5 15. 三数之和 思路 从前往后定义第一个数字 first 开始遍历整个数组 然后要求 frist和上一个数字不重复否则就是重复组合 从frist往后遍历第二个数字 同样要求第二个数字不能重复 再定义第三个数字从后往前面数 三个数字…

Stable Diffusion 绘画入门教程(webui)-ControlNet(Shuffle)

Shuffle(随机洗牌),这个预处理器会把参考图的颜色打乱搅拌到一起,然后重新组合的方式重新生成一张图,可以想象出来这是一个整体风格控制的处理器。 那么问题来了,官方为啥会设计个这样的处理器呢,主要是给懒人用的&am…

sora-AI视频生成工具

目录 sora的特点 sora应用前景 sora 的未来 sora的特点 Sora-AI 视频生成工具是一款基于AI技术的视频制作工具,它可以自动生成电影级别的视频内容,主要用于数字营销、广告宣传、社交媒体营销等领域。 Sora-AI 视频生成工具使用深度学习和计算机视觉技…

内网穿透的应用-如何在群晖配置WebDAV实现云同步Zotero科研文献与笔记【内网穿透】

文章目录 前言1. Docker 部署 Trfɪk2. 本地访问traefik测试3. Linux 安装cpolar4. 配置Traefik公网访问地址5. 公网远程访问Traefik6. 固定Traefik公网地址 前言 Trfɪk 是一个云原生的新型的 HTTP 反向代理、负载均衡软件,能轻易的部署微服务。它支持多种后端 (D…

git push 总是需要输入密码或者个人访问令牌personal access token解决方案

文章目录 遇到问题解决方法 遇到问题 git push的时候总是需要输入密码或者个人访问令牌personal access token 解决方法 ChatGPT给出的解决方案,解决了我的问题。 如果在使用 git push 命令时总是需要输入个人访问令牌,这可能是因为您的 GitHub 账号…