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实现换行符转换的脚本的教程
Apr 16 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
Nov 20 Python
Python中的groupby分组功能的实例代码
Jul 11 Python
python ftp 按目录结构上传下载的实现代码
Sep 12 Python
python多线程同步实例教程
Aug 11 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 Python
使用Python实现正态分布、正态分布采样
Nov 20 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
Mar 07 Python
jupyter notebook 增加kernel教程
Apr 10 Python
Python参数传递机制传值和传引用原理详解
May 22 Python
详解Pytorch显存动态分配规律探索
Nov 17 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
Feb 20 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中关于普通表单多文件上传的处理方法
2011/03/25 PHP
php中获得视频时间总长度的另一种方法
2011/09/15 PHP
用php来改写404错误页让你的页面更友好
2013/01/24 PHP
php中curl和file_get_content的区别
2014/05/10 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
PHP单例模式模拟Java Bean实现方法示例
2018/12/07 PHP
Flash+XML滚动新闻代码 无图片 附源码下载
2007/11/22 Javascript
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
jQuery中:empty选择器用法实例
2014/12/30 Javascript
深入理解选择框脚本[推荐]
2016/12/13 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
基于hover的用法实例(推荐)
2017/07/04 Javascript
vue.js element-ui tree树形控件改iview的方法
2018/03/29 Javascript
详解微信小程序缓存--缓存时效性
2019/05/02 Javascript
在vue中created、mounted等方法使用小结
2020/07/21 Javascript
JS数据类型分类及常用判断方法
2020/11/19 Javascript
[46:21]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python筛选出两个文件中重复行的方法
2018/05/31 Python
Python格式化日期时间操作示例
2018/06/28 Python
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
Pycharm无法使用已经安装Selenium的解决方法
2018/10/13 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
python 检测图片是否有马赛克
2020/12/01 Python
纯css3实现鼠标经过图片显示描述的动画效果
2014/09/01 HTML / CSS
德国网上药房:Apotal
2017/04/04 全球购物
Wiggle新西兰:自行车、跑步、游泳
2020/05/06 全球购物
长青弘远的面试题
2012/06/09 面试题
MIS软件工程师的面试题
2016/04/22 面试题
企业总经理职责
2014/02/02 职场文书
如何写好建议书
2014/03/13 职场文书
会计与审计专业自荐信范文
2014/03/15 职场文书
购房委托书
2014/10/15 职场文书
2014年副班长工作总结
2014/12/10 职场文书
离婚被告代理词
2015/05/23 职场文书