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中使用不同编码读写txt文件详解
May 28 Python
python读取oracle函数返回值
Jul 18 Python
一些常用的Python爬虫技巧汇总
Sep 28 Python
python实现写数字文件名的递增保存文件方法
Oct 25 Python
[原创]Python入门教程4. 元组基本操作
Oct 31 Python
python获取交互式ssh shell的方法
Feb 14 Python
python 的 scapy库,实现网卡收发包的例子
Jul 23 Python
tesserocr与pytesseract模块的使用方法解析
Aug 30 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
Mar 12 Python
python logging 重复写日志问题解决办法详解
Aug 04 Python
Scrapy中如何向Spider传入参数的方法实现
Sep 28 Python
python时间time模块处理大全
Oct 25 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
PHP 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
2012/01/10 PHP
PHP中集成PayPal标准支付的实现方法分享
2012/02/06 PHP
php url路由入门实例
2014/04/23 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
2015/01/26 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
php支付宝APP支付功能
2020/07/29 PHP
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
2016/11/30 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
Vue SPA 初次进入加载动画实现代码
2019/11/14 Javascript
微信小程序实现点击页面出现文字
2020/09/21 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
[00:35]DOTA2上海特级锦标赛 EG战队宣传片
2016/03/04 DOTA
[01:02:26]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第二场 1月18日
2021/03/11 DOTA
在Pycharm中对代码进行注释和缩进的方法详解
2019/01/20 Python
python使用python-pptx删除ppt某页实例
2020/02/14 Python
python序列类型种类详解
2020/02/26 Python
如何利用python读取micaps文件详解
2020/10/18 Python
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
俄罗斯花园种植材料批发和零售网上商店:Беккер
2019/07/22 全球购物
高一自我鉴定
2013/12/17 职场文书
工作人员思想汇报
2014/01/09 职场文书
幼儿园元旦亲子活动方案
2014/02/17 职场文书
十八届三中全会感言
2014/03/10 职场文书
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
花坛标语大全
2014/06/30 职场文书
迎国庆演讲稿
2014/09/15 职场文书
丧事答谢词
2015/01/05 职场文书
幼儿园六一儿童节活动总结
2015/02/10 职场文书
医生辞职信范文
2015/03/02 职场文书
教师远程研修感悟
2015/11/18 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书