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 25 Python
python创建进程fork用法
Jun 04 Python
django通过ajax发起请求返回JSON格式数据的方法
Jun 04 Python
儿童python练习实例
May 27 Python
python如何获取当前文件夹下所有文件名详解
Jan 25 Python
django创建简单的页面响应实例教程
Sep 06 Python
Python坐标线性插值应用实现
Nov 13 Python
python实现高斯投影正反算方式
Jan 17 Python
python 实现任务管理清单案例
Apr 25 Python
用60行代码实现Python自动抢微信红包
Feb 04 Python
Python tkinter之ComboBox(下拉框)的使用简介
Feb 05 Python
Python数组变形的几种实现方法
May 30 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 self与$this的详解
2013/06/08 PHP
PHP中使用array函数新建一个数组
2015/11/19 PHP
php中Ioc(控制反转)和Di(依赖注入)
2017/05/07 PHP
Laravel 5.5 异常处理 & 错误日志的解决
2019/10/17 PHP
初探jquery——表单应用范例
2007/02/20 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
基于jQuery仿淘宝产品图片放大镜特效
2020/10/19 Javascript
jQuery操作Table技巧大汇总
2016/01/23 Javascript
BootStrap智能表单demo示例详解
2016/06/13 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
r.js来合并压缩css文件的示例
2018/04/26 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
vue改变对象或数组时的刷新机制的方法总结
2019/04/24 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
浅析JS中NEW的实现原理及重写
2020/02/20 Javascript
js实现简易拖拽的示例
2020/10/26 Javascript
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
Python中如何优雅的合并两个字典(dict)方法示例
2017/08/09 Python
使用python爬虫实现网络股票信息爬取的demo
2018/01/05 Python
Python格式化日期时间操作示例
2018/06/28 Python
浅谈python中频繁的print到底能浪费多长时间
2020/02/21 Python
python实现学生信息管理系统(精简版)
2020/11/27 Python
苹果美国官方商城:Apple美国
2016/08/24 全球购物
介绍下Java中==和equals的区别
2013/09/01 面试题
医院总经理岗位职责
2014/02/04 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
刚毕业大学生自荐信范文
2014/02/20 职场文书
党员志愿者活动总结
2014/06/26 职场文书
大学活动总结模板
2014/07/10 职场文书
科长个人四风问题整改措施思想汇报
2014/10/13 职场文书
2014年信用社工作总结
2014/11/25 职场文书
优秀英文求职信范文
2015/03/19 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL