`
conjohn668
  • 浏览: 19119 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

python天天进步(3)--字典排序[zz]

阅读更多
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)]
分享到:
评论

相关推荐

    python_docx-0.8.10-py2.py3-none-any.whl

    原来是通过命令行下载的docx安装包还没有完全兼容python3,估计这个安装包还只兼容python 2(python2 和python3差别还是挺大的,虽然现在python 3出来很久了,但是不少三方库还没有更新),因此需要自己找一个兼容的包...

    Python学习笔记--皮大庆.pdf.zip

    3. **列表、元组、字典与集合**:这些是Python的主要数据结构,列表是可变序列,元组是不可变序列,字典是键值对的集合,集合则是一组不重复的元素。理解它们的特点和操作方法,如索引、切片、增删改查、迭代等。 4...

    python3-policycoreutils-2.9-16.el8.noarch.rpm

    官方离线安装包,亲测可用

    python_dateutil-2.8.0-py2.py3-none-any.whl

    python_dateutil-2.8.0-py2.py3-none-any.whl

    python入门-11-字典的总结.ev4.rar

    在Python编程语言中,字典(Dictionary)是一种非常重要的数据结构,它以键值对(key-value pairs)的形式存储数据,允许我们通过键来快速访问对应的值。在本教程"python入门-11-字典的总结"中,我们将深入探讨...

    基于Python实现的K-Shell节点排序算法

    基于python-2.7实现的K-Shell节点排序算法,算法结果输出每个节点K值。

    解决ubuntu14.04 python-catkin-pkg无法安装的问题

    最近ubuntu14.04出了问题,pkg-catkin-pkg无法下载,我7月底重装了一次Ubuntu14.04,安装ros lidigo时报错,依赖python-catkin-pkg,但它不会被安装,我刚开始发现这个问题时试过换源,重装系统均不成功,后面去官方...

    python小游戏--天天酷跑

    python小游戏--天天酷跑1.0,简单但有趣,我已经打包好了,大家下载就可以玩了。

    python教程-03-字典常用操作之新增.ev4.rar

    在Python编程语言中,字典(Dictionary)是一种非常重要的数据结构,它以键值对(key-value pairs)的形式存储数据,提供了快速查找、插入和删除等操作。在本教程“python教程-03-字典常用操作之新增”中,我们将...

    Python语言程序设计教程 北理工Python课程W061204-字典实例二 共9页.pdf

    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-docs-pdf-a4.zip

    Python 3.7.3是Python 3.x系列的一个稳定版本,包含了众多新特性与优化。本手册详细介绍了这一版本的各个方面,旨在帮助用户更好地理解和运用Python 3.7.3进行开发工作。 1. Python 3.7.3简介: - 新特性:Python ...

    python-docx.rar

    显示Import Error: No module named 'exceptions' 原来是通过命令行下载的docx安装包还没有完全兼容python3,估计这个安装包还只兼容python 2(python2 和python3差别还是挺大的,虽然现在python 3出来很久了,但是...

    python-urlgrabber-3.9.1-11.el6.noarch.rpm

    python-urlgrabber-3.9.1-11.el6.noarch.rpm

    Python语言程序设计教程 北理工Python课程W03V01-Python中类型的概念 共3页.pdf

    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

    - `python-3.6.4-amd64.exe`是Python 3.6.4的安装程序,双击运行后,用户可以选择自定义安装路径、添加Python到系统路径、创建桌面快捷方式等选项。 - 安装过程中,还可以选择安装Python的可选组件,如pip(包管理...

    python-devel-2.7.5-34.el7.x86_64.rpm

    centos7环境下离线安装python-devel需要的rpm文件,网站上下载最新的python-devel版本编译安装失败,从centos7的镜像里拷贝出来的低版本的rpm,测试安装成功。

    Centos7-python3.6.8-离线rpm包

    Python 3.6.8是Python 3的一个重要版本,它引入了许多新特性,比如:更强大的类型注解、asyncio模块的改进、f-string(格式化字符串字面量)等。这些特性使得Python在开发高效能应用程序时更为便捷和强大。 在...

    Python语言程序设计教程 北理工Python课程W081608-Turtle Art 共16页.pdf

    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语言程序设计教程 北理工Python课程W071304-软件工程 共9页.pdf

    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语言程序设计教程 北理工Python课程W071403-基本例子 共6页.pdf

    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-三者最大...

Global site tag (gtag.js) - Google Analytics