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中实现结构相似的函数调用方法
Mar 10 Python
python通过smpt发送邮件的方法
Apr 30 Python
linux下python抓屏实现方法
May 22 Python
图文讲解选择排序算法的原理及在Python中的实现
May 04 Python
基于Python __dict__与dir()的区别详解
Oct 30 Python
Python 记录日志的灵活性和可配置性介绍
Feb 27 Python
pandas数据清洗,排序,索引设置,数据选取方法
May 18 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
May 05 Python
对Python 检查文件名是否规范的实例详解
Jun 10 Python
Python如何重新加载模块
Jul 29 Python
用python制作个音乐下载器
Jan 30 Python
python内置进制转换函数的操作
Jun 02 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实现多张图片上传加水印技巧
2013/04/18 PHP
PHP实现微信公众平台音乐点播
2014/03/20 PHP
Laravel 4 初级教程之安装及入门
2014/10/30 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
JavaScript 继承详解 第一篇
2009/08/30 Javascript
jQuery之$(document).ready()使用介绍
2012/04/05 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
js添加事件的通用方法推荐
2016/05/15 Javascript
谈谈对JavaScript原生拖放的深入理解
2016/09/20 Javascript
Bootstrap轮播插件使用代码
2016/10/11 Javascript
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
python使用matplotlib绘图时图例显示问题的解决
2017/04/27 Python
利用信号如何监控Django模型对象字段值的变化详解
2017/11/27 Python
Python处理文本换行符实例代码
2018/02/03 Python
python找出完数的方法
2018/11/12 Python
python日志logging模块使用方法分析
2019/05/23 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
pandas实现to_sql将DataFrame保存到数据库中
2019/07/03 Python
在Python中使用MySQL--PyMySQL的基本使用方法
2019/11/19 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
Python如何使用字符打印照片
2020/01/03 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
Python基于pandas绘制散点图矩阵代码实例
2020/06/04 Python
神经网络训练采用gpu设置的方式
2021/03/03 Python
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
精选鞋类、服装和配饰的全球领先目的地:Bodega
2021/02/27 全球购物
C语言50道问题
2014/10/23 面试题
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
理货员的岗位职责
2013/11/23 职场文书
小学生读书感言
2014/02/12 职场文书
园林技术个人的自我评价
2014/02/15 职场文书
合作意向书范本
2014/03/31 职场文书
正则表达式基础与常用验证表达式
2022/06/16 Javascript