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实现简单多线程任务队列
Feb 27 Python
python3获取两个日期之间所有日期,以及比较大小的实例
Apr 08 Python
PyQt实现界面翻转切换效果
Apr 20 Python
Python基本数据结构之字典类型dict用法分析
Jun 08 Python
使用django的objects.filter()方法匹配多个关键字的方法
Jul 18 Python
详解如何减少python内存的消耗
Aug 09 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
Aug 31 Python
Django 自定义权限管理系统详解(通过中间件认证)
Mar 11 Python
Python PyQt5整理介绍
Apr 01 Python
python3中calendar返回某一时间点实例讲解
Nov 18 Python
Python使用PyYAML库读写yaml文件的方法
Apr 06 Python
Python实现聚类K-means算法详解
Jul 15 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 var_dump遍历对象属性的函数与应用代码
2010/06/04 PHP
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
php 使用curl模拟ip和来源进行访问的实现方法
2017/05/02 PHP
PHP多维数组指定多字段排序的示例代码
2018/05/16 PHP
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
JS中判断null、undefined与NaN的方法
2014/03/24 Javascript
JS判断浏览器是否支持某一个CSS3属性的方法
2014/10/17 Javascript
JavaScript替换当前页面的方法
2015/04/03 Javascript
详解Python中logging日志模块在多进程环境下的使用
2016/12/26 Javascript
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
node中的session的具体使用
2018/09/14 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
ElementUI之Message功能拓展详解
2019/10/18 Javascript
Node.js控制台彩色输出的方法与原理实例详解
2019/12/01 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
2020/03/12 Javascript
[03:36]DOTA2完美大师赛coL战队趣味视频——我演你猜
2017/11/23 DOTA
python实现简单socket程序在两台电脑之间传输消息的方法
2015/03/13 Python
python使用自定义user-agent抓取网页的方法
2015/04/15 Python
Python实现的拉格朗日插值法示例
2019/01/08 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
详解python 条件语句和while循环的实例代码
2020/12/28 Python
Html5游戏开发之乒乓Ping Pong游戏示例(三)
2013/01/21 HTML / CSS
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
巴黎欧莱雅法国官网:L’Oreal Paris
2019/04/30 全球购物
领导视察欢迎词
2014/01/15 职场文书
高中语文教学反思
2014/01/16 职场文书
《日月潭》教学反思
2014/02/28 职场文书
大学生会计职业生涯规划范文
2014/02/28 职场文书
机械专业毕业生自我鉴定2014
2014/10/04 职场文书
拾金不昧感谢信
2015/01/21 职场文书
如何使用flask将模型部署为服务
2021/05/13 Python
python基础入门之字典和集合
2021/06/13 Python
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript