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之Import 模块
Oct 13 Python
Python解析最简单的验证码
Jan 07 Python
使用python进行文本预处理和提取特征的实例
Jun 05 Python
python实现公司年会抽奖程序
Jan 22 Python
10招!看骨灰级Pythoner玩转Python的方法
Apr 15 Python
python实现多线程端口扫描
Aug 31 Python
Python实现字符串中某个字母的替代功能
Oct 21 Python
如何用OpenCV -python3实现视频物体追踪
Dec 04 Python
用python3读取python2的pickle数据方式
Dec 25 Python
Python MySQLdb 执行sql语句时的参数传递方式
Mar 04 Python
Selenium启动Chrome时配置选项详解
Mar 18 Python
python周期任务调度工具Schedule使用详解
Nov 23 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 filter_var() 函数 Filter 函数
2012/04/25 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
PHP实现CSV文件的导入和导出类
2015/03/24 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
php链式操作的实现方式分析
2019/08/12 PHP
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
2015/04/06 Javascript
javascript消除window.close()的提示窗口
2015/05/20 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
JS 实现计算器详解及实例代码(一)
2017/01/08 Javascript
js实现文字跑马灯效果
2017/02/23 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
VUE安装使用教程详解
2019/06/03 Javascript
Vue获取页面元素的相对位置的方法示例
2020/02/05 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
python类继承与子类实例初始化用法分析
2015/04/17 Python
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
python使用Matplotlib画条形图
2020/03/25 Python
Python实现微信小程序支付功能
2019/07/25 Python
python:目标检测模型预测准确度计算方式(基于IoU)
2020/01/18 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
Windows和Linux动态库应用异同
2016/04/17 面试题
中间件分为哪几类
2016/09/18 面试题
修理厂厂长岗位职责
2014/01/30 职场文书
教师岗位聘任书范文
2014/03/29 职场文书
大学运动会加油稿200字(5篇)
2014/09/27 职场文书
西柏坡观后感
2015/06/08 职场文书
酒店开业主持词
2015/07/02 职场文书
体育部部长竞选稿
2015/11/21 职场文书