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回调函数用法实例详解
Jul 02 Python
python装饰器与递归算法详解
Feb 18 Python
python利用不到一百行代码实现一个小siri
Mar 02 Python
Django处理多用户类型的方法介绍
May 18 Python
numpy linalg模块的具体使用方法
May 26 Python
使用python切片实现二维数组复制示例
Nov 26 Python
python实现数据清洗(缺失值与异常值处理)
Dec 02 Python
Python log模块logging记录打印用法解析
Jan 20 Python
Django 项目通过加载不同env文件来区分不同环境
Feb 17 Python
Python tkinter之ComboBox(下拉框)的使用简介
Feb 05 Python
Python机器学习之底层实现KNN
Jun 20 Python
python中对列表的删除和添加方法详解
Feb 24 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 similar_text 字符串的相似性比较函数
2010/05/26 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
2013/06/05 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
PHP扩展Memcache分布式部署方案
2015/12/06 PHP
PHP+Ajax+JS实现多图上传
2016/05/07 PHP
通过ifame指向的页面高度调整iframe的高度
2006/10/05 Javascript
createElement与createDocumentFragment的点点区别小结
2011/12/19 Javascript
选择复选框按钮置灰否则按钮可用
2014/05/22 Javascript
jQuery中parentsUntil()方法用法实例
2015/01/07 Javascript
JavaScript监听和禁用浏览器回车事件实例
2015/01/31 Javascript
JavaScript中数据结构与算法(四):串(BF)
2015/06/19 Javascript
JS实现类似51job上的地区选择效果示例
2016/11/17 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
React教程之Props验证的具体用法(Props Validation)
2017/09/04 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
2019/11/05 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
Django框架首页和登录页分离操作示例
2019/05/28 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
全球速卖通巴西站点:Aliexpress巴西
2016/08/24 全球购物
美国购买当代和现代家具网站:MODTEMPO
2018/07/20 全球购物
英国最大的在线快递公司之一:ParcelHero
2019/11/04 全球购物
外企C语言笔试题
2013/11/10 面试题
函授本科毕业自我鉴定
2013/10/09 职场文书
专升本自我鉴定
2013/10/10 职场文书
奥巴马胜选演讲稿
2014/05/15 职场文书
政风行风评议个人心得体会
2014/10/29 职场文书
2014年局领导班子自身建设情况汇报
2014/11/21 职场文书
2014年流动人口工作总结
2014/11/26 职场文书
2015年父亲节寄语
2015/03/23 职场文书
师德师风培训感言
2015/08/03 职场文书
PHP 对接美团大众点评团购券(门票)的开发步骤
2021/04/03 PHP
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL