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实现电子词典
Apr 23 Python
Python的条件语句与运算符优先级详解
Oct 13 Python
python黑魔法之编码转换
Jan 25 Python
Python中函数参数设置及使用的学习笔记
May 03 Python
Centos7 Python3下安装scrapy的详细步骤
Mar 15 Python
python使用pymongo操作mongo的完整步骤
Apr 13 Python
python文件转为exe文件的方法及用法详解
Jul 08 Python
python 自定义装饰器实例详解
Jul 20 Python
Python对接 xray 和微信实现自动告警
Sep 17 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
Aug 07 Python
如何基于Python实现word文档重新排版
Sep 29 Python
用python基于appium模块开发一个自动收取能量的小助手
Sep 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
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
ThinkPHP页面跳转success与error方法概述
2014/06/25 PHP
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
DOM基础教程之事件类型
2015/01/20 Javascript
js分页工具实例
2015/01/28 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
基于JavaScript伪随机正态分布代码实例
2019/11/07 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
微信小程序点击顶部导航栏切换样式代码实例
2019/11/12 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
2020/10/27 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
[01:06:30]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第二场 1月9日
2021/03/11 DOTA
netbeans7安装python插件的方法图解
2013/12/24 Python
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
Python文件操作及内置函数flush原理解析
2020/10/13 Python
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
家长给孩子的评语
2014/01/30 职场文书
《美丽的小路》教学反思
2014/02/26 职场文书
家长给学校的建议书
2014/05/15 职场文书
本科生求职信
2014/06/17 职场文书
学习朴航瑛老师爱岗敬业先进事迹思想汇报
2014/09/17 职场文书
世界气象日活动总结
2015/02/27 职场文书
web前端之css水平居中代码解析
2021/05/20 HTML / CSS
Python实现单例模式的5种方法
2021/06/15 Python
Java并发编程之Executor接口的使用
2021/06/21 Java/Android
python数据可视化使用pyfinance分析证券收益示例详解
2021/11/20 Python