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 相关文章推荐
Python3如何解决字符编码问题详解
Apr 23 Python
利用python获取Ping结果示例代码
Jul 06 Python
Python数据结构与算法之图结构(Graph)实例分析
Sep 05 Python
Python实现PS滤镜中马赛克效果示例
Jan 20 Python
Python使用random.shuffle()打乱列表顺序的方法
Nov 08 Python
Python正则表达式匹配和提取IP地址
Jun 06 Python
python实现翻转棋游戏(othello)
Jul 29 Python
浅谈Python 递归算法指归
Aug 22 Python
python3利用Axes3D库画3D模型图
Mar 25 Python
python nohup 实现远程运行不宕机操作
Apr 16 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 Python
Python中request的基本使用解决乱码问题
Apr 12 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
示例详解Laravel的注册重构
2016/08/14 PHP
php表单处理操作
2017/11/16 PHP
PHP SESSION机制的理解与实例
2019/03/22 PHP
调用js时ie6和ie7,ff的区别
2009/08/19 Javascript
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
js渐变显示渐变消失示例代码
2013/08/01 Javascript
使用VS开发 Node.js指南
2015/01/06 Javascript
js打造数组转json函数
2015/01/14 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
基于jQuery实现的QQ表情插件
2015/08/25 Javascript
js两种拼接字符串的简单方法(必看)
2016/09/02 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
bootstrap tooltips在 angularJS中的使用方法
2019/04/10 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
2021/02/06 Javascript
Python 使用SMTP发送邮件的代码小结
2016/09/21 Python
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
Python3实现二叉树的最大深度
2019/09/30 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
运行Python编写的程序方法实例
2020/10/21 Python
python时间time模块处理大全
2020/10/25 Python
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
Bailey帽子官方商店:Bailey Hats
2018/09/25 全球购物
美国翻新电子产品商店:The Store
2019/10/08 全球购物
自考生自我鉴定范文
2013/10/01 职场文书
社区春季防火方案
2014/06/02 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
会议营销主持词
2015/07/03 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
python 中的jieba分词库
2021/11/23 Python
vue中data里面的数据相互使用方式
2022/06/05 Vue.js