如何对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的即时标记项目练习笔记
Sep 18 Python
python实现去除下载电影和电视剧文件名中的多余字符的方法
Sep 23 Python
Python爬虫利用cookie实现模拟登陆实例详解
Jan 12 Python
python实现基于SVM手写数字识别功能
May 27 Python
Python元组及文件核心对象类型详解
Feb 11 Python
如何用Python合并lmdb文件
Jul 02 Python
django如何连接已存在数据的数据库
Aug 14 Python
Python多图片合并PDF的方法
Jan 03 Python
python pygame实现球球大作战
Nov 25 Python
如何基于Python创建目录文件夹
Dec 31 Python
python继承threading.Thread实现有返回值的子类实例
May 02 Python
Python如何使用ConfigParser读取配置文件
Nov 12 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中的array_filter()函数去掉多维空值的代码分享
2012/09/07 PHP
php把数组值转换成键的方法
2015/07/13 PHP
PHP响应post请求上传文件的方法
2015/12/17 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
php mysql 封装类实例代码
2016/09/18 PHP
php中上传文件的的解决方案
2018/09/25 PHP
JavaScript 内置对象属性及方法集合
2010/07/04 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
jQuery之排序组件的深入解析
2013/06/19 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
2016/04/17 Javascript
jquery动态创建div与input的实例代码
2016/10/12 Javascript
jstree创建无限分级树的方法【基于ajax动态创建子节点】
2016/10/25 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
基于JavaScript实现本地图片预览
2017/02/08 Javascript
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
谈谈JS中的!!
2017/12/07 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
微信小程序使用echarts获取数据并生成折线图
2019/10/16 Javascript
node crawler如何添加promise支持
2020/02/01 Javascript
vue-cli4.0多环境配置变量与模式详解
2020/12/30 Vue.js
详细介绍Python中的偏函数
2015/04/27 Python
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
Pandas中Series和DataFrame的索引实现
2019/06/27 Python
python模块和包的应用BASE_PATH使用解析
2019/12/14 Python
Python @property原理解析和用法实例
2020/02/11 Python
安装不同版本的tensorflow与models方法实现
2021/02/20 Python
HTML5中Localstorage的使用教程
2015/07/09 HTML / CSS
法国和欧洲海边和滑雪度假:Pierre & Vacances
2017/01/04 全球购物
Rossignol金鸡美国官网:始于1907年法国百年雪具品牌
2019/03/06 全球购物
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
考试诚信承诺书
2014/05/23 职场文书
答辩状格式范本
2015/05/22 职场文书
pytorch 实现多个Dataloader同时训练
2021/05/29 Python