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两种遍历字典(dict)的方法比较
May 29 Python
Python自动连接ssh的方法
Mar 07 Python
python通过yield实现数组全排列的方法
Mar 18 Python
Python文件读取的3种方法及路径转义
Jun 21 Python
python利用datetime模块计算时间差
Aug 04 Python
使用Python写个小监控
Jan 27 Python
django之session与分页(实例讲解)
Nov 13 Python
Python简单定义与使用二叉树示例
May 11 Python
Python对ElasticSearch获取数据及操作
Apr 24 Python
详解Scrapy Redis入门实战
Nov 18 Python
Python办公自动化之Excel(中)
May 24 Python
python中filter,map,reduce的作用
Jun 10 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中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
php fsockopen中多线程问题的解决办法[翻译]
2011/11/09 PHP
php二维数组排序方法(array_multisort usort)
2013/12/25 PHP
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
2014/03/22 Javascript
jQuery Ajax中的事件详细介绍
2015/04/16 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
jquery制做精致的倒计时特效
2016/06/13 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
一个简单的python程序实例(通讯录)
2013/11/29 Python
在GitHub Pages上使用Pelican搭建博客的教程
2015/04/25 Python
Python使用装饰器模拟用户登陆验证功能示例
2018/08/24 Python
Python定时发送天气预报邮件代码实例
2019/09/09 Python
解决TensorFlow模型恢复报错的问题
2020/02/06 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
Python3 selenium 实现QQ群接龙自动化功能
2020/04/17 Python
如何打包Python Web项目实现免安装一键启动的方法
2020/05/21 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
Python 中 sorted 如何自定义比较逻辑
2021/02/02 Python
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
意大利体育用品和运动服网上商店:Maxi Sport
2019/09/14 全球购物
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
物业经理求职自我评价
2013/09/22 职场文书
新闻专业学生的自我评价
2014/02/13 职场文书
幼儿园教师工作感言
2014/02/15 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
工作求职信
2014/07/04 职场文书
关于运动会的广播稿50字
2014/10/17 职场文书
2014年度安全工作总结
2014/12/04 职场文书
某学校的2019年度工作报告范本
2019/10/11 职场文书
Nginx开启Brotli压缩算法实现过程详解
2021/03/31 Servers
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python
Python可视化学习之seaborn调色盘
2022/02/24 Python