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的Tornado框架结合memcached页面改善博客性能
Apr 24 Python
Python实现FTP上传文件或文件夹实例(递归)
Jan 16 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
Jul 11 Python
python列表的增删改查实例代码
Jan 30 Python
python 利用pandas将arff文件转csv文件的方法
Feb 12 Python
Python实现KNN(K-近邻)算法的示例代码
Mar 05 Python
Linux下远程连接Jupyter+pyspark部署教程
Jun 21 Python
Python:slice与indices的用法
Nov 25 Python
python实现五子棋程序
Apr 24 Python
python/golang 删除链表中的元素
Sep 14 Python
python实现银行账户系统
Feb 22 Python
Python基础知识学习之类的继承
May 31 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系列学习之日期函数使用介绍
2012/08/18 PHP
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
推荐十款免费 WordPress 插件
2015/03/24 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
JavaScript实现x秒后自动跳转到一个页面
2013/01/03 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
2015/09/24 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
2016/07/25 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
node实现登录图片验证码的示例代码
2018/04/20 Javascript
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
2020/07/12 Javascript
[00:06]Yes,it worked!小卡尔成功穿越时空加入战场!
2019/07/20 DOTA
用Python中的字典来处理索引统计的方法
2015/05/05 Python
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
python在非root权限下的安装方法
2018/01/23 Python
python读取和保存视频文件
2018/04/16 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
Python 用matplotlib画以时间日期为x轴的图像
2019/08/06 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
2019/10/28 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
python字典按照value排序方法
2020/12/28 Python
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
军神教学反思
2014/02/04 职场文书
春季防火方案
2014/05/10 职场文书
本科应届生自荐信
2014/06/29 职场文书
村支部书记群众路线对照检查材料思想汇报
2014/10/08 职场文书
“学党章、守党纪、讲党规”学习心得体会
2016/01/14 职场文书
Oracle 多表查询基本语法实例
2022/04/18 Oracle
java实现自定义时钟并实现走时功能
2022/06/21 Java/Android