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之深入变量和引用对象
Sep 24 Python
python字典DICT类型合并详解
Aug 17 Python
python入门前的第一课 python怎样入门
Mar 06 Python
不管你的Python报什么错,用这个模块就能正常运行
Sep 14 Python
Python中logging实例讲解
Jan 17 Python
Django获取应用下的所有models的例子
Aug 30 Python
python 多进程队列数据处理详解
Dec 23 Python
Python hashlib和hmac模块使用方法解析
Dec 08 Python
python 利用matplotlib在3D空间中绘制平面的案例
Feb 06 Python
提取视频中的音频 Python只需要三行代码!
May 10 Python
2021年最新用于图像处理的Python库总结
Jun 15 Python
Python内置包对JSON文件数据进行编码和解码
Apr 12 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
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
php 运行效率总结(提示程序速度)
2009/11/26 PHP
一个简单的网页密码登陆php代码
2012/07/17 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
2016/05/18 PHP
JavaScript事件列表解说
2006/12/22 Javascript
cookie 最近浏览记录(中文escape转码)具体实现
2013/06/08 Javascript
js post提交调用方法
2014/02/12 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
javascript判断图片是否加载完成的方法推荐
2016/05/13 Javascript
js定义类的几种方法(推荐)
2016/06/08 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
2017/10/27 Javascript
js实现简易拖拽的示例
2020/10/26 Javascript
vue实现禁止浏览器记住密码功能的示例代码
2021/02/03 Vue.js
python交互式图形编程实例(三)
2017/11/17 Python
python实现微信远程控制电脑
2018/02/22 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
Flask实现图片的上传、下载及展示示例代码
2018/08/03 Python
python pyinstaller 加载ui路径方法
2019/06/10 Python
python要安装在哪个盘
2020/06/15 Python
如何解决pycharm调试报错的问题
2020/08/06 Python
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
英智兴达软件测试笔试题
2016/10/12 面试题
英语老师推荐信
2014/02/26 职场文书
成立公司计划书
2014/05/07 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
道德大讲堂实施方案
2014/05/14 职场文书
2014年接待工作总结
2014/11/26 职场文书
处级干部考察材料
2014/12/24 职场文书
社会实践单位意见
2015/06/05 职场文书
旅行社计调工作总结
2015/08/12 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技
如何使用注解方式实现 Redis 分布式锁
2022/07/23 Redis