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 相关文章推荐
详解Swift中属性的声明与作用
Jun 30 Python
Python编程求质数实例代码
Jan 31 Python
Python实现的凯撒密码算法示例
Apr 12 Python
Django 路由系统URLconf的使用
Oct 11 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
Jun 18 Python
python傅里叶变换FFT绘制频谱图
Jul 19 Python
树莓派3 搭建 django 服务器的实例
Aug 29 Python
关于Python3 类方法、静态方法新解
Aug 30 Python
python django中8000端口被占用的解决
Dec 17 Python
python数据预处理方式 :数据降维
Feb 24 Python
Django操作session 的方法
Mar 09 Python
Python基于class()实现面向对象原理详解
Mar 26 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与javascript对多项选择的处理
2006/10/09 PHP
实现分十页分向前十页向后十页的处理
2006/10/09 PHP
PHP5 安装方法
2007/01/15 PHP
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
php csv操作类代码
2009/12/14 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
php合并数组中相同元素的方法
2014/11/13 PHP
JavaScript Perfection kill 测试及答案
2010/03/23 Javascript
js 全兼容可高亮二级缓冲折叠菜单
2010/06/04 Javascript
jquery滚动条插件jScrollPane的使用介绍
2013/11/08 Javascript
jquery1.10给新增元素绑定事件的方法
2014/03/06 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
2014/10/17 Javascript
Javascript闭包用法实例分析
2015/01/23 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
jQuery判断数组是否包含了指定的元素
2015/03/10 Javascript
JS实现双击屏幕滚动效果代码
2015/10/28 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
Mongoose经常返回e11000 error的原因分析
2017/03/29 Javascript
微信小程序日历组件calendar详解及实例
2017/06/08 Javascript
详解js 创建对象的几种方法
2019/03/08 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
java遇到微信小程序 "支付验证签名失败" 问题解决
2019/12/22 Javascript
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
Django如何批量创建Model
2020/09/01 Python
pip install命令安装扩展库整理
2021/03/02 Python
请写出一段Python代码实现删除一个list里面的重复元素
2015/12/29 面试题
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
家居设计专业个人自荐信范文
2013/11/26 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
公务员个人年终总结
2015/02/12 职场文书
入党自荐书范文
2015/03/05 职场文书
2016年119消防宣传日活动总结
2016/04/05 职场文书
Spring Cloud Gateway去掉url前缀
2021/07/15 Java/Android
Vue elementUI表单嵌套表格并对每行进行校验详解
2022/02/18 Vue.js
vue里使用create, mounted调用方法
2022/04/26 Vue.js