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模拟登录12306的方法
Dec 30 Python
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
Jan 20 Python
Python实现多并发访问网站功能示例
Jun 19 Python
深入浅出分析Python装饰器用法
Jul 28 Python
对python读取CT医学图像的实例详解
Jan 24 Python
python3 线性回归验证方法
Jul 09 Python
opencv调整图像亮度对比度的示例代码
Sep 27 Python
python中设置超时跳过,超时退出的方式
Dec 13 Python
Python文件操作方法详解
Feb 09 Python
Keras:Unet网络实现多类语义分割方式
Jun 11 Python
Python图像识别+KNN求解数独的实现
Nov 13 Python
使用Django的JsonResponse返回数据的实现
Jan 15 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 开发环境配置(Zend Server安装)
2010/04/28 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
php使用imagecopymerge()函数创建半透明水印
2018/01/25 PHP
jquery 可拖拽的窗体控件实现代码
2010/03/21 Javascript
JS维吉尼亚密码算法实现代码
2010/11/09 Javascript
jQuery实现鼠标可拖动调整表格列宽度
2014/05/26 Javascript
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
2015/08/21 NodeJs
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
2017/09/22 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
python使用pil生成缩略图的方法
2015/03/26 Python
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
解决yum对python依赖版本问题
2019/07/05 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
Django ORM filter() 的运用详解
2020/05/14 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
介绍一下sql server的安全性
2014/08/10 面试题
致短跑运动员广播稿
2014/01/09 职场文书
党员违纪检讨书
2014/02/18 职场文书
乡镇办公室工作决心书
2014/03/11 职场文书
行政专员求职信范文
2014/05/03 职场文书
大足石刻导游词
2015/02/02 职场文书
写给导师的自荐信
2015/03/06 职场文书