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 中文字符串的处理实现代码
Oct 25 Python
Python操作json数据的一个简单例子
Apr 17 Python
pygame学习笔记(6):完成一个简单的游戏
Apr 15 Python
在Python中使用模块的教程
Apr 27 Python
Java中重定向输出流实现用文件记录程序日志
Jun 12 Python
基于Django的python验证码(实例讲解)
Oct 23 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
Dec 22 Python
Python两个字典键同值相加的几种方法
Mar 05 Python
深入了解Python在HDA中的应用
Sep 05 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
Mar 30 Python
Pytorch转onnx、torchscript方式
May 25 Python
python+opencv实现视频抽帧示例代码
Jun 11 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 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
PHP取整数函数常用的四种方法小结
2012/07/05 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
php关闭warning问题的解决方法
2016/05/17 PHP
浅析PHP echo 和 print 语句
2020/06/30 PHP
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
Javascript优化技巧(文件瘦身篇)
2008/01/28 Javascript
js 巧妙去除数组中的重复项
2010/01/25 Javascript
为JavaScript添加重载函数的辅助方法
2010/07/04 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
javascript中的五种基本数据类型
2015/08/26 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
2015/11/30 Javascript
javascript字符串函数汇总
2015/12/06 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
2016/01/28 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
原生JS实现《别踩白块》游戏(兼容IE)
2017/02/20 Javascript
详解Vue双向数据绑定原理解析
2017/09/11 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
Python编写生成验证码的脚本的教程
2015/05/04 Python
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
matplotlib绘图实例演示标记路径
2018/01/23 Python
基于python的多进程共享变量正确打开方式
2018/04/28 Python
详解python实现数据归一化处理的方式:(0,1)标准化
2019/07/17 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
Python如何使用paramiko模块连接linux
2020/03/18 Python
python re.match()用法相关示例
2021/01/27 Python
html5 application cache遇到的严重问题
2012/12/26 HTML / CSS
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
护士检查书
2014/01/17 职场文书
领班岗位职责范文
2014/02/06 职场文书
写给老婆的检讨书
2014/02/21 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
党员评议个人总结
2014/10/20 职场文书
小学新课改心得体会
2016/01/22 职场文书