如何对python的字典进行排序


Posted in Python onJune 19, 2020

我们知道Python的内置dictionary数据类型是无序的,通过key来获取对应的value。可是有时我们需要对dictionary中 的item进行排序输出,可能根据key,也可能根据value来排。到底有多少种方法可以实现对dictionary的内容进行排序输出呢?下面摘取了 一些精彩的解决办法。

python对容器内数据的排序有两种,一种是容器自己的sort函数,一种是内建的sorted函数。

sort函数和sorted函数唯一的不同是,sort是在容器内(in-place)排序,sorted生成一个新的排好序的容器。

1 按照Key值排序

#最简单的方法,这个是按照key值排序: 
def sortedDictValues1(adict): 
items = adict.items() 
items.sort() 
return [value for key, value in items] 
 
#又一个按照key值排序,貌似比上一个速度要快点 
def sortedDictValues2(adict): 
keys = adict.keys() 
keys.sort() 
return [dict[key] for key in keys] 
 
#还是按key值排序,据说更快。。。而且当key为tuple的时候照样适用 
def sortedDictValues3(adict): 
keys = adict.keys() 
keys.sort() 
return map(adict.get, keys) 
 
#一行语句搞定: 
[(k,di[k]) for k in sorted(di.keys())] 
 
#用sorted函数的key参数(func)排序: 
#按照key进行排序 
print sorted(dict1.items(), key=lambda d: d[0])

2 按照value值排序

#来一个根据value排序的,先把item的key和value交换位置放入一个list中,再根据list每个元素的第一个值,即原来的value值,
排序: 
def sort_by_value(d): 
items=d.items() 
backitems=[[v[1],v[0]] for v in items] 
backitems.sort() 
return [ backitems[i][1] for i in range(0,len(backitems))] 
 
#还是一行搞定: 
[ v for v in sorted(di.values())] 
 
#用lambda表达式来排序,更灵活: 
sorted(d.items(), lambda x, y: cmp(x[1], y[1])), 或反序: 
sorted(d.items(), lambda x, y: cmp(x[1], y[1]), reverse=True) 
 
#用sorted函数的key参数(func)排序: # 按照value进行排序 
print sorted(dict1.items(), key=lambda d: d[1])

知识点扩展:

准备知识:

在python里,字典dictionary是内置的数据类型,是个无序的存储结构,每一元素是key-value对:

如:dict = {'username':'password','database':'master'},其中'username'和'database'是key,而'password'和'master'是value,可以通过d[key]获得对应值value的引用,但是不能通过value得到key。

对于dictionnary,需知道以下几点注意事项:

a、 dictionary 的 key 是大小写敏感的;

b、 一个dictionary中不能有重复的 key;

c、 dictionary是无序的,没有元素顺序的概念,它们只是序偶的简单排列。

到此这篇关于如何对python的字典进行排序的文章就介绍到这了,更多相关python的字典进行排序方法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
编写Python脚本使得web页面上的代码高亮显示
Apr 24 Python
通过5个知识点轻松搞定Python的作用域
Sep 09 Python
深入理解Python3中的http.client模块
Mar 29 Python
python实现简单中文词频统计示例
Nov 08 Python
详细解读tornado协程(coroutine)原理
Jan 15 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
May 16 Python
python地震数据可视化详解
Jun 18 Python
python实现翻转棋游戏(othello)
Jul 29 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
Aug 12 Python
python 消除 futureWarning问题的解决
Dec 25 Python
python 爬取B站原视频的实例代码
Sep 09 Python
如何用Python徒手写线性回归
Jan 25 Python
浅谈Python中的继承
Jun 19 #Python
python程序需要编译吗
Jun 19 #Python
python中round函数如何使用
Jun 19 #Python
keras实现theano和tensorflow训练的模型相互转换
Jun 19 #Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 #Python
python中怎么表示空值
Jun 19 #Python
Python调用OpenCV实现图像平滑代码实例
Jun 19 #Python
You might like
PHP用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
2014/04/25 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
php根据日期或时间戳获取星座信息和生肖等信息
2015/10/20 PHP
php-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
解决npm管理员身份install时出现权限的问题
2018/03/16 Javascript
vue cli升级webapck4总结
2018/04/04 Javascript
小程序实现左滑删除功能
2018/10/30 Javascript
layui实现数据表格自定义数据项
2019/10/26 Javascript
vue实现评价星星功能
2020/06/30 Javascript
Python操作SQLite简明教程
2014/07/10 Python
centos 下面安装python2.7 +pip +mysqld
2014/11/18 Python
python实现二叉树的遍历
2017/12/11 Python
python编程实现12306的一个小爬虫实例
2017/12/27 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
Python使用pymongo模块操作MongoDB的方法示例
2018/07/20 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/27 Python
Django如何自定义分页
2018/09/25 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
python属于软件吗
2020/06/18 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
HTML5视频播放插件 video.js介绍
2018/09/29 HTML / CSS
香港彩色隐形眼镜在线商店:Stunninglens(全球免费送货)
2019/05/10 全球购物
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
Servlet方面面试题
2016/09/28 面试题
临床医学专业求职信
2014/08/08 职场文书
2014年银行客户经理工作总结
2014/11/12 职场文书
2016简历自荐信优秀范文
2016/01/29 职场文书
gateway网关接口请求的校验方式
2021/07/15 Java/Android
Tomcat 与 maven 的安装与使用教程
2022/06/16 Servers