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 11 Python
详解用python写一个抽奖程序
May 10 Python
python字符串替换第一个字符串的方法
Jun 26 Python
Pyqt QImage 与 np array 转换方法
Jun 27 Python
Python实现一个带权无回置随机抽选函数的方法
Jul 24 Python
Python基于WordCloud制作词云图
Nov 29 Python
Python3如何在Windows和Linux上打包
Feb 25 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
Mar 10 Python
Python Tornado批量上传图片并显示功能
Mar 26 Python
python中entry用法讲解
Dec 04 Python
简单介绍Python的第三方库yaml
Jun 18 Python
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
Jun 26 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 构造函数construct的前下划线是双的_
2009/12/08 PHP
php excel类 phpExcel使用方法介绍
2010/08/21 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
在SAE上搭建最新wordpress的方法
2014/12/21 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
2016/08/17 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
angular实现input输入监听的示例
2018/08/31 Javascript
React手稿之 React-Saga的详解
2018/11/12 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
2019/04/28 jQuery
vue无限轮播插件代码实例
2019/05/10 Javascript
基于vue实现圆形菜单栏组件
2019/07/05 Javascript
通过js随机函数Math.random实现乱序
2020/05/19 Javascript
webpack4从0搭建组件库的实现
2020/11/29 Javascript
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
使用Python编写Prometheus监控的方法
2018/10/15 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
python中update的基本使用方法详解
2019/07/17 Python
pytorch如何冻结某层参数的实现
2020/01/10 Python
Python txt文件如何转换成字典
2020/11/03 Python
html5使用Canvas绘图的使用方法
2017/11/21 HTML / CSS
俄罗斯连接商品和买家的在线平台:goods.ru
2020/11/30 全球购物
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
如何写出好的Java代码
2014/04/25 面试题
商务日语毕业生自荐信范文
2013/11/14 职场文书
高中校园广播稿
2014/01/11 职场文书
代办出身证明书
2014/10/21 职场文书
学生党员检讨书范文
2014/12/27 职场文书
药店营业员岗位职责
2015/04/14 职场文书
2015年幼儿园个人工作总结
2015/04/25 职场文书
秋菊打官司观后感
2015/06/03 职场文书
世界名著读书笔记
2015/06/25 职场文书
八年级语文教学反思
2016/03/03 职场文书