如何对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 自动刷博客浏览量实例代码
Jun 14 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
使用11行Python代码盗取了室友的U盘内容
Oct 23 Python
Python创建字典的八种方式
Feb 27 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
Jul 22 Python
pygame实现俄罗斯方块游戏(基础篇3)
Oct 29 Python
关于win10在tensorflow的安装及在pycharm中运行步骤详解
Mar 16 Python
基于Python实现视频的人脸融合功能
Jun 12 Python
django haystack实现全文检索的示例代码
Jun 24 Python
keras输出预测值和真实值方式
Jun 27 Python
详解Python 最短匹配模式
Jul 29 Python
Python中tkinter的用户登录管理的实现
Apr 22 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中的路径问题与set_include_path使用介绍
2014/02/11 PHP
php通过sort()函数给数组排序的方法
2015/03/18 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
Textarea与懒惰渲染实现代码
2012/01/04 Javascript
基于jquery css3实现点击动画弹出表单源码特效
2015/08/31 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
vue keep-alive的简单总结
2021/01/25 Vue.js
[43:41]OG vs Newbee 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
python中Apriori算法实现讲解
2017/12/10 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
python 处理string到hex脚本的方法
2018/10/26 Python
Python字符串匹配之6种方法的使用详解
2019/04/08 Python
Python后台开发Django会话控制的实现
2019/04/15 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
酒店管理专业学生求职信
2013/09/27 职场文书
大型主题婚礼活动策划方案
2014/09/15 职场文书
师德师风个人整改措施
2014/10/27 职场文书
党员年度个人总结
2015/02/14 职场文书
2016社区平安家庭事迹材料
2016/02/26 职场文书
2019年恭贺升学祝福语集锦
2019/08/15 职场文书
2019年国庆祝福语(70句)
2019/09/19 职场文书
Python道路车道线检测的实现
2021/06/27 Python
TaiShan 200服务器安装Ubuntu 18.04的图文教程
2022/06/28 Servers