python字典排序实例详解


Posted in Python onMay 20, 2015

本文实例分析了python字典排序的方法。分享给大家供大家参考。具体如下:

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是无序的,没有元素顺序的概念,它们只是序偶的简单排列。

2、 字典排序实现:

前面已说明dictionary本身没有顺序概念,但是总是在某些时候,但是我们常常需要对字典进行排序,怎么做呢?下面告诉你:

方法1:最简单的方法,排列元素(key/value对),然后挑出值。字典的items方法,会返回一个元组的列表,其中每个元组都包含一对项目——键与对应的值。此时排序可以sort()方法。

def sortedDictValues1(adict):
  items = adict.items()
  items.sort()
  return [value for key, value in items]

方法2:使用排列键(key)的方式,挑出值,速度比方法1快。字典对象的keys()方法返回字典中所有键值组成的列表,次序是随机的。需要排序时只要对返回的键值列表使用sort()方法。

def sortedDictValues1(adict):
  keys = adict.keys()
  keys.sort()
  return [adict[key] for key in keys]

方法3:通过映射的方法去更有效的执行最后一步

def sortedDictValues1(adict):
  keys = adict.keys()
  keys.sort()
  return map(adict.get,keys)

方法4:对字典按键排序,用元组列表的形式返回,同时使用lambda函数来进行;
sorted(iterable[, cmp[, key[, reverse]]]
cmp和key一般使用lambda
如:

>>> d={"ok":1,"no":2}#对字典按键排序,用元组列表的形式返回
>>> sorted(d.items, key=lambda d:d[0])
[('no', 2), ('ok', 1)]

对字典按值排序,用元组列表的形式返回

>>> sorted(d.items, key=lambda d:d[1])
[('ok', 1), ('no', 2)]

对字典元素的排序虽然有好多种方法,这里也没有总结全,但如果对程序效率没有太高要求,选择喜欢的用就好。

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
用Python计算三角函数之acos()方法的使用
May 15 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
May 24 Python
基于python进行抽样分布描述及实践详解
Sep 02 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
Nov 11 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
Feb 26 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
Mar 08 Python
Python urllib2运行过程原理解析
Jun 04 Python
python中rb含义理解
Jun 18 Python
浅谈PyTorch中in-place operation的含义
Jun 27 Python
Python Flask异步发送邮件实现方法解析
Aug 01 Python
Python基于staticmethod装饰器标示静态方法
Oct 17 Python
python 爬取华为应用市场评论
May 29 Python
在Python中操作字符串之startswith()方法的使用
May 20 #Python
Python中splitlines()方法的使用简介
May 20 #Python
在Python中用split()方法分割字符串的使用介绍
May 20 #Python
Python编程之多态用法实例详解
May 19 #Python
Python编程之属性和方法实例详解
May 19 #Python
python实现提取百度搜索结果的方法
May 19 #Python
在Python中操作字符串之rstrip()方法的使用
May 19 #Python
You might like
用php简单实现加减乘除计算器
2014/01/06 PHP
php生成xml时添加CDATA标签的方法
2014/10/17 PHP
php验证码生成器
2017/05/24 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
掌握PHP垃圾回收机制详解
2019/03/13 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)
2016/02/23 Javascript
JavaScript面试开发常用的知识点总结
2016/08/08 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
vue路由前进后退动画效果的实现代码
2018/12/10 Javascript
微信小程序实现多选删除列表数据功能示例
2019/01/15 Javascript
NodeJs 模仿SIP话机注册的方法
2019/06/21 NodeJs
JS实现点星星消除小游戏
2020/03/24 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
JavaScript设计模式--简单工厂模式定义与应用案例详解
2020/05/23 Javascript
[01:34]完美“圣”典宣传片震撼发布,12.17与你不见不散
2016/12/16 DOTA
[56:18]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[42:11]TNC vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python基础教程之对象和类的实际运用
2014/08/29 Python
Python获取任意xml节点值的方法
2015/05/05 Python
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
python银行系统实现源码
2019/10/25 Python
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
欧洲最大的化妆品连锁公司:Douglas道格拉斯
2017/05/06 全球购物
事业单位请假制度
2014/01/13 职场文书
国际会议邀请函范文
2014/01/16 职场文书
2014年公司植树节活动方案
2014/03/04 职场文书
2015年教师节主持词
2015/07/03 职场文书
学校运动会通讯稿
2015/07/18 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书