Python使用lambda表达式对字典排序操作示例


Posted in Python onJuly 25, 2019

本文实例讲述了Python使用lambda表达式对字典排序操作。分享给大家供大家参考,具体如下:

lambda表达式也常用于字典排序,既然写到字典排序,那就把按键排序和按值排序都写写好了。

字典按键排序

显然按键排序,需要用字典中每个元素的第一项排序

dict = {'a':1,'b':2,'c':3,'d':4,'e':3,'f':1,'g':7}
sorted_dict_asc = sorted(dict.items(),key=lambda item:item[0])
sorted_dict_dsc = sorted(dict.items(),key=lambda item:item[0],reverse=True)

输出(第一个升序,第二个降序):

[('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 3), ('f', 1), ('g', 7)]
[('g', 7), ('f', 1), ('e', 3), ('d', 4), ('c', 3), ('b', 2), ('a', 1)]]

字典按值排序

需要使用字典中每个元素的第二项进行排序

dict = {'a':1,'b':2,'c':3,'d':4,'e':3,'f':1,'g':7}
sorted_dict_asc = sorted(dict.items(),key=lambda item:item[1])
sorted_dict_dsc = sorted(dict.items(),key=lambda item:item[1],reverse=True)

输出

[('f', 1), ('a', 1), ('b', 2), ('e', 3), ('c', 3), ('d', 4), ('g', 7)]
[('g', 7), ('d', 4), ('e', 3), ('c', 3), ('b', 2), ('f', 1), ('a', 1)]

字典的多条件排序

如上例子,我们想将字典按值排序,当值相等时我们按键排序,那么就是多条件排序。

dict = {'f':1,'b':2,'c':3,'d':4,'e':3,'a':1,'g':7}
sorted_dict_asc = sorted(dict.items(),key=lambda item:(item[1],item[0]))
sorted_dict_dsc = sorted(dict.items(),key=lambda item:(item[1],item[0]),reverse=True)
Python 相关文章推荐
使用graphics.py实现2048小游戏
Mar 10 Python
Python中使用插入排序算法的简单分析与代码示例
May 04 Python
python 查找文件名包含指定字符串的方法
Jun 05 Python
Python判断telnet通不通的实例
Jan 26 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
Jul 11 Python
Kears+Opencv实现简单人脸识别
Aug 28 Python
python 自定义异常和主动抛出异常(raise)的操作
Dec 11 Python
pycharm 的Structure界面设置操作
Feb 05 Python
python xlwt模块的使用解析
Apr 13 Python
Python自然语言处理之切分算法详解
Apr 25 Python
python之json文件转xml文件案例讲解
Aug 07 Python
python库Tsmoothie模块数据平滑化异常点抓取
Jun 10 Python
浅析Python 引号、注释、字符串
Jul 25 #Python
django的auth认证,authenticate和装饰器功能详解
Jul 25 #Python
使用python telnetlib批量备份交换机配置的方法
Jul 25 #Python
python找出因数与质因数的方法
Jul 25 #Python
HTML的form表单和django的form表单
Jul 25 #Python
Python3 批量扫描端口的例子
Jul 25 #Python
python3 批量获取对应端口服务的实例
Jul 25 #Python
You might like
建立文件交换功能的脚本(三)
2006/10/09 PHP
php一些公用函数的集合
2008/03/27 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
php 修改、增加xml结点属性的实现代码
2013/10/22 PHP
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
PHP 8新特性简介
2020/08/18 PHP
document.all还是document.getElementsByName?
2006/07/21 Javascript
Js的MessageBox
2006/12/03 Javascript
php与js的区别是什么
2013/08/05 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
2014/11/20 Javascript
jquery实现表单验证并阻止非法提交
2015/07/09 Javascript
js计算系统当前日期是星期几的方法
2016/07/14 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
Angularjs 实现动态添加控件功能
2017/05/25 Javascript
详解webpack打包vue时提取css
2017/05/26 Javascript
JavaScript实现单例模式实例分享
2017/12/22 Javascript
Vue动态获取width的方法
2018/08/22 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
2019/12/10 Javascript
vue简单封装axios插件和接口的统一管理操作示例
2020/02/02 Javascript
JavaScript仿京东秒杀倒计时
2020/03/17 Javascript
Vue切换div显示隐藏,多选,单选代码解析
2020/07/14 Javascript
使用Pyrex来扩展和加速Python程序的教程
2015/04/13 Python
Python pickle模块用法实例
2015/04/14 Python
Python字符串格式化
2015/06/15 Python
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
PyQt5每天必学之布局管理
2018/04/19 Python
Python生成器next方法和send方法区别详解
2020/05/30 Python
Python中的面向接口编程示例详解
2021/01/17 Python
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
linux面试题参考答案(6)
2014/08/29 面试题
企业职业病防治方案
2014/05/29 职场文书
反四风对照检查材料思想汇报
2014/09/16 职场文书
六五普法宣传标语
2014/10/06 职场文书