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中利用生成器实现的并发编程
May 04 Python
Python 调用Java实例详解
Jun 02 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
Jul 07 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
Feb 18 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
Mar 10 Python
Django调用支付宝接口代码实例详解
Apr 04 Python
Python列表去重复项的N种方法(实例代码)
May 12 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
Jun 04 Python
python正则表达式 匹配反斜杠的操作方法
Aug 07 Python
如何实现一个python函数装饰器(Decorator)
Oct 12 Python
Pycharm Plugins加载失败问题解决方案
Nov 28 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
Mar 04 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抓取页面与代码解析 推荐
2010/07/23 PHP
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
PHP记录搜索引擎蜘蛛访问网站足迹的方法
2015/04/15 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
php源码的使用方法讲解
2019/09/26 PHP
js锁屏解屏通过对$.ajax进行封装实现
2014/07/31 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
解决vue select当前value没有更新到vue对象属性的问题
2018/08/30 Javascript
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
JS实现的点击按钮图片上下滚动效果示例
2019/01/28 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
ant design vue中日期选择框混合时间选择器的用法说明
2020/10/27 Javascript
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
python正则匹配查询港澳通行证办理进度示例分享
2013/12/27 Python
python实现将汉字转换成汉语拼音的库
2015/05/05 Python
深入理解NumPy简明教程---数组2
2016/12/17 Python
python 获取页面表格数据存放到csv中的方法
2018/12/26 Python
浅谈python的输入输出,注释,基本数据类型
2019/04/02 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
Rowdy Gentleman服装和配饰:美好时光
2019/09/24 全球购物
行政主管岗位职责
2013/11/18 职场文书
个人素质的自我评价分享
2013/12/16 职场文书
交通事故检查书范文
2014/01/30 职场文书
普罗米修斯教学反思
2014/02/06 职场文书
派出所正风肃纪剖析材料
2014/10/10 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
辞职信格式范文
2015/05/13 职场文书
卫生主题班会
2015/08/14 职场文书
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫
Python 匹配文本并在其上一行追加文本
2022/05/11 Python