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  连接字符串(join %)
Sep 06 Python
python登录QQ邮箱发信的实现代码
Feb 10 Python
Python语法快速入门指南
Oct 12 Python
Python变量和数据类型详解
Feb 15 Python
Python使用asyncio包处理并发详解
Sep 09 Python
机器学习10大经典算法详解
Dec 07 Python
Django自定义过滤器定义与用法示例
Mar 22 Python
python opencv设置摄像头分辨率以及各个参数的方法
Apr 02 Python
python 利用栈和队列模拟递归的过程
May 29 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
Aug 22 Python
python中字符串的编码与解码详析
Dec 03 Python
Django实现简单的分页功能
Feb 22 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 ajax 静态分页过程形式
2011/09/02 PHP
php Xdebug的安装与使用详解
2013/06/20 PHP
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
基于MooTools的很有创意的滚动条时钟动画
2010/11/14 Javascript
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
2013/09/21 Javascript
js实现拉幕效果的广告代码
2015/09/02 Javascript
JS截取字符串实例详解
2015/11/24 Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
2016/09/23 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
2017/02/20 Javascript
three.js加载obj模型的实例代码
2017/11/10 Javascript
JS伪继承prototype实现方法示例
2018/06/20 Javascript
vue中使用vue-cli接入融云实现即时通信
2019/04/19 Javascript
jQuery实现本地存储
2020/12/22 jQuery
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
学习Django知识点分享
2019/09/11 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
美国新娘礼品店:The Paisley Box
2020/09/08 全球购物
运动会稿件200字
2014/02/07 职场文书
出纳员的岗位职责
2014/02/22 职场文书
爱心活动计划书
2014/04/26 职场文书
伦敦奥运会的口号
2014/06/21 职场文书
法人代表证明书
2014/09/18 职场文书
一个都不能少观后感
2015/06/04 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
Python中json.dumps()函数的使用解析
2021/05/17 Python
详解JVM系列之内存模型
2021/06/10 Javascript
mysql的数据压缩性能对比详情
2021/11/07 MySQL
Python开发五子棋小游戏
2022/05/02 Python
Python实现双向链表基本操作
2022/05/25 Python