Python使用sorted对字典的key或value排序


Posted in Python onNovember 15, 2018

sorted函数

sorted(iterable,key,reverse)

  • iterable 待排序的可迭代对象
  • key 对应的是个函数, 该函数用来决定选取用哪些值来进行排序
  • reverse 反转排序

对key排序

d: dict = {"p": 59, "o": 9, "s": 5, "a": 20, "z": 18}

li: list = sorted(d.keys())
print(li)

执行结果:

['a', 'o', 'p', 's', 'z']

对value排序

在对value之前, 先来回炉一下Python的lambda表达式 

f = lambda x: x+1
print(f(5))

def ff(x):
 return x+1
print(ff(5))

执行结果:

6
6

以上两种方式是等价的, lambda表达式写法更简洁, 一般当做匿名表达式/匿名函数使用

lambda x:y

  • x 为入参
  • y 为计算表达式, 运算后返回

接下来进入到对字典的value排序正题, 这里就需要使用到lambda表达式

直接对值排序

d: dict = {"p": 59, "o": 9, "s": 5, "a": 20, "z": 18}

li: list = sorted(d.values())
print(li)

执行结果:

[5, 9, 18, 20, 59]

在包含Key的情况下对值排序

d: dict = {"p": 59, "o": 9, "s": 5, "a": 20, "z": 18}

li: list = sorted(d.items(), key=lambda x: x[1])
print(li)

执行结果:

[('s', 5), ('o', 9), ('z', 18), ('a', 20), ('p', 59)]

d.items() 返回以元组形式构成的列表 dict_items([('p', 59), ('o', 9), ('s', 5), ('a', 20), ('z', 18)]) (列表为可迭代对象)

lambda x: x[1] lambda表达式中, x为入参, 每次x的值为一个d.items()中的元素(一个元组), 第一个入参为('p', 59) 冒号后面的x[1]是运算表达式, 意思是取元组中的第二个元素返回(索引为1), 返回的元素即为排序的依据. 所以如果需要对key进行排序, 也可以在表达式里写 x[0]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的二维码生成小软件
Jul 11 Python
python中模块查找的原理与方法详解
Aug 11 Python
python实现数据写入excel表格
Mar 25 Python
python Web开发你要理解的WSGI & uwsgi详解
Aug 01 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
Jul 01 Python
详解python uiautomator2 watcher的使用方法
Sep 09 Python
python应用文件读取与登录注册功能
Sep 23 Python
使用Python的datetime库处理时间(RPA流程)
Nov 24 Python
python可视化text()函数使用详解
Feb 11 Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
Sep 30 Python
python用字节处理文件实例讲解
Apr 13 Python
pytorch 预训练模型读取修改相关参数的填坑问题
Jun 05 Python
python并发和异步编程实例
Nov 15 #Python
Numpy截取指定范围内的数据方法
Nov 14 #Python
python numpy元素的区间查找方法
Nov 14 #Python
python爬虫之urllib库常用方法用法总结大全
Nov 14 #Python
Python3爬取英雄联盟英雄皮肤大图实例代码
Nov 14 #Python
python 顺时针打印矩阵的超简洁代码
Nov 14 #Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
Nov 14 #Python
You might like
2019年中国咖啡业现状与发展趋势
2021/03/04 咖啡文化
PHP初学者最感迷茫的问题小结
2010/03/27 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
2016/03/21 PHP
PHP云打印类完整示例
2016/10/15 PHP
PHP通过curl获取接口URL的数据方法
2018/05/31 PHP
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
js中eval详解
2012/03/30 Javascript
jquerymobile checkbox及时刷新才能获取其准确值
2012/04/14 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
nodejs 实现模拟form表单上传文件
2014/07/14 NodeJs
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
微信小程序 wxapp画布 canvas详细介绍
2016/10/31 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
2017/01/16 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
Layui表格监听行单双击事件讲解
2019/11/14 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
Vue实现todo应用的示例
2021/02/20 Vue.js
[04:16]DOTA2全国高校联赛16强抽签
2018/05/02 DOTA
详解Python的Django框架中的templates设置
2015/05/11 Python
python使用Paramiko模块实现远程文件拷贝
2019/04/30 Python
pytorch 常用线性函数详解
2020/01/15 Python
html5 乒乓球(碰撞检测)实例二
2013/07/25 HTML / CSS
Myprotein台湾官方网站:全球领先的运动营养品牌
2018/12/10 全球购物
女子职高个人自荐书
2014/02/01 职场文书
2014年小学元旦活动方案
2014/02/12 职场文书
诚信承诺书范文
2014/03/27 职场文书
大学自主招生推荐信
2014/05/10 职场文书
销售员试用期自我评价
2014/09/15 职场文书
销售代理协议书
2014/09/30 职场文书
大学生个人学习总结
2015/02/15 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
使用CSS连接数据库的方式
2022/02/28 HTML / CSS