如何对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温度转换实例分析
Jan 17 Python
python如何去除字符串中不想要的字符
Jul 05 Python
Python之批量创建文件的实例讲解
May 10 Python
Python爬虫包BeautifulSoup简介与安装(一)
Jun 17 Python
Python面向对象程序设计之继承与多继承用法分析
Jul 13 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
Jun 05 Python
使用Python将字符串转换为格式化的日期时间字符串
Sep 01 Python
用python解压分析jar包实例
Jan 16 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
Feb 28 Python
DRF框架API版本管理实现方法解析
Aug 21 Python
Python内置函数property()如何使用
Sep 01 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 5.5版本的array_column()函数
2014/10/24 PHP
php通过递归方式复制目录和子目录的方法
2015/03/13 PHP
让textarea控件的滚动条怎是位与最下方
2007/04/20 Javascript
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
如何在node的express中使用socket.io
2014/12/15 Javascript
Node.js开发之访问Redis数据库教程
2015/01/14 Javascript
javascript实现在网页中运行本地程序的方法
2016/02/03 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
javascript按钮禁用和启用的效果实例代码
2017/10/29 Javascript
vue嵌套路由与404重定向实现方法分析
2018/05/04 Javascript
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
layer弹出层扩展主题的方法
2019/09/11 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
解决vue scoped html样式无效的问题
2020/10/24 Javascript
Python实现遍历windows所有窗口并输出窗口标题的方法
2015/03/13 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
2016/06/27 Python
分享vim python缩进等一些配置
2018/07/02 Python
Python使用itchat 功能分析微信好友性别和位置
2019/08/05 Python
python接口调用已训练好的caffe模型测试分类方法
2019/08/26 Python
Python之变量类型和if判断方式
2020/05/05 Python
英国在线花园中心:You Garden
2018/06/03 全球购物
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
Nip + Fab官网:英国美容品牌
2019/08/26 全球购物
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
群胜软件Java笔试题
2012/09/29 面试题
Ruby如何创建一个线程
2013/03/10 面试题
生物专业个人自荐信范文
2013/11/29 职场文书
门卫工作岗位职责
2013/12/17 职场文书
白莲教口号
2014/06/18 职场文书
2014法院干警廉洁警示教育思想汇报
2014/09/13 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python
quickjs 封装 JavaScript 沙箱详情
2021/11/02 Javascript
使用JS前端技术实现静态图片局部流动效果
2022/08/05 Javascript