如何对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 相关文章推荐
Golang与python线程详解及简单实例
Apr 27 Python
django基础之数据库操作方法(详解)
May 24 Python
浅谈Python处理PDF的方法
Nov 10 Python
Python根据欧拉角求旋转矩阵的实例
Jan 28 Python
如何用Python来理一理红楼梦里的那些关系
Aug 14 Python
python做接口测试的必要性
Nov 20 Python
将tensorflow模型打包成PB文件及PB文件读取方式
Jan 23 Python
使用Python将图片转正方形的两种方法实例代码详解
Apr 29 Python
python访问hdfs的操作
Jun 06 Python
Python+PyQt5+MySQL实现天气管理系统
Jun 16 Python
Python如何爬取b站热门视频并导入Excel
Aug 10 Python
Pandas直接读取sql脚本的方法
Jan 21 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 disk_free_space 返回目录可用空间
2010/05/10 PHP
php引用传值实例详解学习
2013/11/06 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
2014/03/14 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
2013/04/26 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
js获取字符串字节数方法小结
2015/06/09 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
Angular实现的自定义模糊查询、排序及三角箭头标注功能示例
2017/12/28 Javascript
JavaScript中七种流行的开源机器学习框架
2018/10/11 Javascript
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
如何实现小程序与小程序之间的跳转
2020/11/04 Javascript
Python实现删除文件但保留指定文件
2015/06/21 Python
Python中集合的内建函数和内建方法学习教程
2015/08/19 Python
python中利用Future对象回调别的函数示例代码
2017/09/07 Python
Python使用matplotlib填充图形指定区域代码示例
2018/01/16 Python
使用python实现BLAST
2018/02/12 Python
对Python3使运行暂停的方法详解
2019/02/18 Python
python中字符串数组逆序排列方法总结
2019/06/23 Python
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
canvas实现圆绘制的示例代码
2019/09/11 HTML / CSS
升职自荐信范文
2013/10/05 职场文书
财务部绩效考核方案
2014/05/04 职场文书
企业形象策划方案
2014/05/29 职场文书
生活小常识广播稿
2014/09/16 职场文书
中秋晚会致辞
2015/07/31 职场文书
2019年大学推荐信
2019/06/24 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书
python基于机器学习预测股票交易信号
2021/05/25 Python