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多线程学习资料
Dec 19 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
Dec 14 Python
python3爬取淘宝信息代码分析
Feb 10 Python
Python读取mat文件,并转为csv文件的实例
Jul 04 Python
Python Socket编程之多线程聊天室
Jul 28 Python
python语音识别实践之百度语音API
Aug 30 Python
python中map的基本用法示例
Sep 10 Python
python实现几种归一化方法(Normalization Method)
Jul 31 Python
Python帮你识破双11的套路
Nov 11 Python
django数据模型(Model)的字段类型解析
Dec 25 Python
python实现俄罗斯方块游戏(改进版)
Mar 13 Python
python进度条显示之tqmd模块
Aug 22 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中防止SQL注入攻击和XSS攻击的两个简单方法
2010/04/15 PHP
PHP中判断变量为空的几种方法分享
2013/08/26 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
javascript 读取图片文件的大小
2009/06/25 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
js实现适用于素材网站的黑色多级菜单导航条效果
2015/08/24 Javascript
js实现左侧网页tab滑动门效果代码
2015/09/06 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
2016/06/06 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
Nodejs--post的公式详解
2017/04/29 NodeJs
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
2017/07/05 NodeJs
Angular2 组件交互实例详解
2017/08/24 Javascript
Angular5.1新功能分享
2017/12/21 Javascript
JavaScript创建防篡改对象的方法分析
2018/12/30 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
JavaScript实现的九种排序算法
2019/03/04 Javascript
JavaScript实现省份城市的三级联动
2020/02/11 Javascript
uniapp电商小程序实现订单30分钟倒计时
2020/11/01 Javascript
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
Python转换时间的图文方法
2019/07/01 Python
如何利用pygame实现简单的五子棋游戏
2019/12/29 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
韩国家庭购物网上商店:Nsmall
2017/05/07 全球购物
苹果Mac升级:MacSales.com
2017/11/20 全球购物
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
人力资源管理专业学生自我评价
2013/11/20 职场文书
爱心倡议书范文
2014/05/12 职场文书
Python基于Tkinter开发一个爬取B站直播弹幕的工具
2021/05/06 Python
JS实现简单的九宫格抽奖
2022/06/28 Javascript