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中定义结构体的方法
Mar 04 Python
Python导入txt数据到mysql的方法
Apr 08 Python
Python聚类算法之凝聚层次聚类实例分析
Nov 20 Python
python使用Pycharm创建一个Django项目
Mar 05 Python
Python django使用多进程连接mysql错误的解决方法
Oct 08 Python
对Python w和w+权限的区别详解
Jan 23 Python
python调试神器PySnooper的使用
Jul 03 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
Jul 10 Python
对python中url参数编码与解码的实例详解
Jul 25 Python
对Python 中矩阵或者数组相减的法则详解
Aug 26 Python
Python如何基于smtplib发不同格式的邮件
Dec 30 Python
python中操作文件的模块的方法总结
Feb 04 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
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
JavaScript 打地鼠游戏代码说明
2010/10/12 Javascript
ASP.NET jQuery 实例18 通过使用jQuery validation插件校验DropDownList
2012/02/03 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
2013/11/21 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
angular.foreach 循环方法使用指南
2015/01/06 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
JavaScript数据结构之数组的表示方法示例
2017/04/12 Javascript
Vue中的数据监听和数据交互案例解析
2017/07/12 Javascript
原生JS实现手动轮播图效果实例代码
2018/11/22 Javascript
React通过redux-persist持久化数据存储的方法示例
2019/02/14 Javascript
vue项目中引入vue-datepicker插件的详解
2019/05/14 Javascript
Webpack5正式发布,有哪些新特性
2020/10/12 Javascript
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
Python多线程编程(五):死锁的形成
2015/04/05 Python
python实现多线程的方式及多条命令并发执行
2016/06/07 Python
Python使用统计函数绘制简单图形实例代码
2019/05/15 Python
使用Python画了一棵圣诞树的实例代码
2020/11/27 Python
学会迭代器设计模式,帮你大幅提升python性能
2021/01/03 Python
CSS3实现苹果手机解锁的字体闪亮效果示例
2021/01/05 HTML / CSS
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
巴西婴儿用品商店:Bebe Store
2017/11/23 全球购物
ANINE BING官方网站:奢华的衣橱基本款和时尚永恒的单品
2019/11/26 全球购物
Python文件操作的面试题
2013/06/22 面试题
运动会宣传口号
2014/06/09 职场文书
党员批评与自我批评发言稿
2014/10/14 职场文书
解除施工合同协议书
2014/10/17 职场文书
同事离别感言
2015/08/04 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书
《包身工》教学反思
2016/02/23 职场文书
创业不要错过,这4种餐饮新模式
2019/07/18 职场文书
Nginx安装配置详解
2022/06/25 Servers