Python中如何通过itemgetter对字典列表进行排序
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇文章为大家展示了Python中如何通过itemgetter对字典列表进行排序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言:我们有一个字典列表,想根据
千家信息网最后更新 2026年11月04日Python中如何通过itemgetter对字典列表进行排序
本篇文章为大家展示了Python中如何通过itemgetter对字典列表进行排序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
前言:我们有一个字典列表,想根据一个或多个字典中的值对列表进行排序。
利用operator模块中的itemgetter函数对这类结构进行排序是非常简单的。
实例:
from operator import itemgetterrows=[{'name':'mark','age':18,'uid':'110'},{'name':'miaomiao','age':28,'uid':'150'},{'name':'miaomiao','age':8,'uid':'150'},{'name':'xiaohei','age':38,'uid':'130'},]rows_by_name=sorted(rows,key=itemgetter('name'))rows_by_uid=sorted(rows,key=itemgetter('uid'))print(rows_by_name)print(rows_by_uid)#itemgetter还支持多个键rows_by_name_age=sorted(rows,key=itemgetter('name','age'))print(rows_by_name_age)#itemgetter同样适用min、maxprint(min(rows,key=itemgetter('uid')))print(max(rows,key=itemgetter('age')))运行结果:
[{'name': 'mark', 'age': 18, 'uid': '110'}, {'name': 'miaomiao', 'age': 28, 'uid': '150'}, {'name': 'miaomiao', 'age': 8, 'uid': '150'}, {'name': 'xiaohei', 'age': 38, 'uid': '130'}][{'name': 'mark', 'age': 18, 'uid': '110'}, {'name': 'xiaohei', 'age': 38, 'uid': '130'}, {'name': 'miaomiao', 'age': 28, 'uid': '150'}, {'name': 'miaomiao', 'age': 8, 'uid': '150'}][{'name': 'mark', 'age': 18, 'uid': '110'}, {'name': 'miaomiao', 'age': 8, 'uid': '150'}, {'name': 'miaomiao', 'age': 28, 'uid': '150'}, {'name': 'xiaohei', 'age': 38, 'uid': '130'}]{'name': 'mark', 'age': 18, 'uid': '110'}{'name': 'xiaohei', 'age': 38, 'uid': '130'}讨论
在这个例子中,rows被传递给内建的sorted()函数,该函数接受一个关键字参数key,这个参数应该代表一个可调用对象(callable),该对象从rows中接受一个单独的元素作为输入并返回一个用来做排序依据的值。itemgetter()函数创建的就是这样的一个可调用对象。
函数operator.itemgetter()接受的参数可作为查询的标记,用来从rows的记录中提取出所需要的值。它可以是字典的键名称、用数字表示的列表元素或是任何可以传给对象的__getitem__()方法的值。如果传多个标记给itemgetter(),那么它产生的可调用对象将返回一个包含所有元素在内的元组,然后sorted()将根据对元组的排序结果来排列输出结果。如果想同时针对多个字段做排序,那么这是非常有用的。
有时候会用lambda表达式取代itemgetter()的功能,例如:
rows_by_uid=sorted(rows,key=lambda r:r['uid'])rows_by_name_age=sorted(rows,key=lambda r:(r['name','age']))
这种解决方案通常也能正常工作。但是用itemgetter()通常会运行的更快一些。因此如果需要考虑性能问题的话,应该使用itemgetter().
上述内容就是Python中如何通过itemgetter对字典列表进行排序,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
排序
字典
函数
对象
多个
元素
参数
结果
可调
内容
就是
技能
标记
知识
运行
简明
简明扼要
代表
例子
关键
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中智农互联网科技
西安纸贵互联网科技有限公司
互联网核心科技是什么
互联网巨头科技公司
互联网 科技创新
狮子座互联网科技
互联网 的科技创新
互联网科技论坛
北京三清互联网科技
中国互联网有什么科技含量
重庆互联网医院沙龙医盟信息科技
青岛科技大学互联网大赛研究生
恒生互联网科技指数跳水
科技赋能视角下互联网保险发展
北京市互联网新科技
扫呗互联网科技有限公司
易企秀互联网科技是做什么的
互联网时代科技型公司的机会
长沙渺峰互联网科技有限公司
互联网科技收购价值
百单互联网科技有限公司
哈尔滨新华互联网科技
山东吉时兔互联网科技有限公司
新华互联网科技2019
武汉健翔互联网络科技有限公司
工业互联网山东科技大学
互联网企业科技类企业如何做账
互联网科技包装股份有限公司上市
上海乐五互联网科技有限公司
银川新华互联网科技学校招聘