Python实现字典排序、按照list中字典的某个key排序的方法示例


Posted in Python onDecember 18, 2018

本文实例讲述了Python实现字典排序、按照list中字典的某个key排序的方法。分享给大家供大家参考,具体如下:

1.给字典按照value按照从大到小排序

排序

dict = {'a':21, 'b':5, 'c':3, 'd':54, 'e':74, 'f':0}
new_dict = sorted(dict.iteritems(), key=lambda d:d[1], reverse = True)
print new_dict

输出:

[('e', 74), ('d', 54), ('a', 21), ('b', 5), ('c', 3), ('f', 0)]

2. python按照list中的字典的某key排序:

例子:

s=[
{"no":28,"score":90},
{"no":25,"score":90},
{"no":1,"score":100},
{"no":2,"score":20},
]
print "original s: ",s
# 单级排序,仅按照score排序
new_s = sorted(s,key = lambda e:e.__getitem__('score'))
print "new s: ", new_s
# 多级排序,先按照score,再按照no排序
new_s_2 = sorted(new_s,key = lambda e:(e.__getitem__('score'),e.__getitem__('no')))
print "new_s_2: ", new_s_2

输出:

original s:  [{'score': 90, 'no': 28}, {'score': 90, 'no': 25}, {'score': 100, 'no': 1}, {'score': 20, 'no': 2}]
new s:  [{'score': 20, 'no': 2}, {'score': 90, 'no': 28}, {'score': 90, 'no': 25}, {'score': 100, 'no': 1}]
new_s_2:  [{'score': 20, 'no': 2}, {'score': 90, 'no': 25}, {'score': 90, 'no': 28}, {'score': 100, 'no': 1}]

说明

1.new_s和new_s2的区别在于当score均为90的时候,重新按照no排序

2.顺序为从小到大,若在sorted函数的参数加上reverse = True则为从大到小

Python 相关文章推荐
Python创建日历实例
Aug 21 Python
python通过pil将图片转换成黑白效果的方法
Mar 16 Python
python实现从网络下载文件并获得文件大小及类型的方法
Apr 28 Python
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
Jul 01 Python
Python中查看变量的类型内存地址所占字节的大小
Jun 26 Python
Django 框架模型操作入门教程
Nov 05 Python
Python如何计算语句执行时间
Nov 22 Python
Python requests及aiohttp速度对比代码实例
Jul 16 Python
pyx文件 生成pyd 文件用于 cython调用的实现
Mar 04 Python
Python常遇到的错误和异常
Nov 02 Python
如何通过一篇文章了解Python中的生成器
Apr 02 Python
python 闭包函数详细介绍
Apr 19 Python
python实现求特征选择的信息增益
Dec 18 #Python
python实现连续图文识别
Dec 18 #Python
Django ManyToManyField 跨越中间表查询的方法
Dec 18 #Python
Python列表list排列组合操作示例
Dec 18 #Python
python实现二维插值的三维显示
Dec 17 #Python
Python实现分段线性插值
Dec 17 #Python
Python 获取主机ip与hostname的方法
Dec 17 #Python
You might like
Apache中php.ini的设置方法
2013/02/28 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
2015/07/10 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
2016/12/09 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
JavaScript把数组作为堆栈使用的方法
2015/03/20 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
2015/10/22 Javascript
老生常谈javascript变量的命名规范和注释
2016/09/29 Javascript
js控制台输出的方法(详解)
2016/11/26 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
基于vue2实现上拉加载功能
2017/11/28 Javascript
jQuery中内容过滤器简单用法示例
2018/03/31 jQuery
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
python单例模式实例分析
2015/04/08 Python
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
使用django-crontab实现定时任务的示例
2018/02/26 Python
python Web开发你要理解的WSGI & uwsgi详解
2018/08/01 Python
Python实现繁体中文与简体中文相互转换的方法示例
2018/12/18 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
python框架flask表单实现详解
2019/11/04 Python
python:动态路由的Flask程序代码
2019/11/22 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
Matplotlib 折线图plot()所有用法详解
2020/07/28 Python
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
美国鞋类购物网站:Shiekh Shoes
2016/08/21 全球购物
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
音乐系毕业生自荐信
2013/10/27 职场文书
党员批评与自我批评(5篇)
2014/09/23 职场文书
股东授权委托书
2014/10/15 职场文书
周一给客户的问候语
2015/11/10 职场文书
jackson json序列化实现首字母大写,第二个字母需小写
2021/06/29 Java/Android