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、 字典排序实现:
参见cookbook,Recipe 5.1. Sorting a Dictionary讲述了字典排序的方法;
前面已说明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)]
分享到:
相关推荐
原来是通过命令行下载的docx安装包还没有完全兼容python3,估计这个安装包还只兼容python 2(python2 和python3差别还是挺大的,虽然现在python 3出来很久了,但是不少三方库还没有更新),因此需要自己找一个兼容的包...
3. **列表、元组、字典与集合**:这些是Python的主要数据结构,列表是可变序列,元组是不可变序列,字典是键值对的集合,集合则是一组不重复的元素。理解它们的特点和操作方法,如索引、切片、增删改查、迭代等。 4...
官方离线安装包,亲测可用
python_dateutil-2.8.0-py2.py3-none-any.whl
在Python编程语言中,字典(Dictionary)是一种非常重要的数据结构,它以键值对(key-value pairs)的形式存储数据,允许我们通过键来快速访问对应的值。在本教程"python入门-11-字典的总结"中,我们将深入探讨...
基于python-2.7实现的K-Shell节点排序算法,算法结果输出每个节点K值。
最近ubuntu14.04出了问题,pkg-catkin-pkg无法下载,我7月底重装了一次Ubuntu14.04,安装ros lidigo时报错,依赖python-catkin-pkg,但它不会被安装,我刚开始发现这个问题时试过换源,重装系统均不成功,后面去官方...
python小游戏--天天酷跑1.0,简单但有趣,我已经打包好了,大家下载就可以玩了。
在Python编程语言中,字典(Dictionary)是一种非常重要的数据结构,它以键值对(key-value pairs)的形式存储数据,提供了快速查找、插入和删除等操作。在本教程“python教程-03-字典常用操作之新增”中,我们将...
Python中类型的概念3-2-数字类型3-3-字符串类型3-4-字符串的操作3-5-元组类型3-6-列表类型及操作3-7-math库和random库3-8-π的计算4-1-1-程序基本结构4-1-2-简单分支4-1-3-多分支4-1-4-异常处理设计4-1-5-三者最大...
Python 3.7.3是Python 3.x系列的一个稳定版本,包含了众多新特性与优化。本手册详细介绍了这一版本的各个方面,旨在帮助用户更好地理解和运用Python 3.7.3进行开发工作。 1. Python 3.7.3简介: - 新特性:Python ...
显示Import Error: No module named 'exceptions' 原来是通过命令行下载的docx安装包还没有完全兼容python3,估计这个安装包还只兼容python 2(python2 和python3差别还是挺大的,虽然现在python 3出来很久了,但是...
python-urlgrabber-3.9.1-11.el6.noarch.rpm
Python中类型的概念3-2-数字类型3-3-字符串类型3-4-字符串的操作3-5-元组类型3-6-列表类型及操作3-7-math库和random库3-8-π的计算4-1-1-程序基本结构4-1-2-简单分支4-1-3-多分支4-1-4-异常处理设计4-1-5-三者最大...
- `python-3.6.4-amd64.exe`是Python 3.6.4的安装程序,双击运行后,用户可以选择自定义安装路径、添加Python到系统路径、创建桌面快捷方式等选项。 - 安装过程中,还可以选择安装Python的可选组件,如pip(包管理...
centos7环境下离线安装python-devel需要的rpm文件,网站上下载最新的python-devel版本编译安装失败,从centos7的镜像里拷贝出来的低版本的rpm,测试安装成功。
Python 3.6.8是Python 3的一个重要版本,它引入了许多新特性,比如:更强大的类型注解、asyncio模块的改进、f-string(格式化字符串字面量)等。这些特性使得Python在开发高效能应用程序时更为便捷和强大。 在...
Python中类型的概念3-2-数字类型3-3-字符串类型3-4-字符串的操作3-5-元组类型3-6-列表类型及操作3-7-math库和random库3-8-π的计算4-1-1-程序基本结构4-1-2-简单分支4-1-3-多分支4-1-4-异常处理设计4-1-5-三者最大...
Python中类型的概念3-2-数字类型3-3-字符串类型3-4-字符串的操作3-5-元组类型3-6-列表类型及操作3-7-math库和random库3-8-π的计算4-1-1-程序基本结构4-1-2-简单分支4-1-3-多分支4-1-4-异常处理设计4-1-5-三者最大...
Python中类型的概念3-2-数字类型3-3-字符串类型3-4-字符串的操作3-5-元组类型3-6-列表类型及操作3-7-math库和random库3-8-π的计算4-1-1-程序基本结构4-1-2-简单分支4-1-3-多分支4-1-4-异常处理设计4-1-5-三者最大...