• zip()函数
  • sorted()

要求对字典中,按值的大小排序

解决方案:
利用zip函数

zip函数介绍:

zip函数可以将可迭代对象打包成一个个元组,在python3中返回一个对象,在python2中返回一个列表

常用操作方法

In [1]: a = [1,2,3]                                                                                                                

In [2]: b = [2, 4, 6]                                                                                                              

In [3]: zip(a, b)
Out[3]: <zip at 0x109d1dc08> In [4]: list(zip(a, b))
Out[4]: [(1, 2), (2, 4), (3, 6)] In [5]: zip(*zip(a,b))
Out[5]: <zip at 0x109d7a148> In [6]: list(zip(*zip(a,b)))
Out[6]: [(1, 2, 3), (2, 4, 6)]

利用zip可以将列表压缩成元组列表的特性,将字典的key和value压成一个元组,然后按照元组的方式进行比较,从而达到排序的目的。

代码如下

# 生成一个字典
data = {x: randint(60, 100) for x in 'abcxyz'}
print(sorted(zip(data.values(), data.keys()))) 输出:[(69, 'c'), (75, 'a'), (76, 'x'), (81, 'z'), (94, 'y'), (95, 'b')]
直接利用sorted排序

sorted()方法,常用来对list进行直接排序

例如

In [7]: sorted([1, 5, 2, 9])
Out[7]: [1, 2, 5, 9]

对字典排序,利用sorted()函数的key参数

In [12]: data.items()
Out[12]: dict_items([('a', 76), ('b', 83), ('c', 77), ('x', 72), ('y', 61), ('z', 81)]) In [13]: sorted(data.items(), key=lambda x: x[1], reverse=True)
Out[13]: [('b', 83), ('z', 81), ('c', 77), ('a', 76), ('x', 72), ('y', 61)]

每次迭代data.items(),将data.items()中的一个元素赋于key,然后排序,此处x就是data.items()的一个元素,x[1]为该元组的第一个值,赋于key,按key排序,

reverse=True 表示按降序排列,默认按升序排列

本文介绍了按字典的值排序的两种方法,第二种从空间复杂度和时间复杂度上更优

python进阶--字典排序的更多相关文章

  1. 深入Python(1): 字典排序 关于sort()、reversed()、sorted()

    http://www.cnblogs.com/BeginMan/p/3193081.html 一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠 ...

  2. python中字典排序,列表中的字典排序

    python中字典排序,列表中的字典排序 一.使用python模块:operator import operator #首先要导入模块operator x = {1:2, 3:4, 4:3, 2:1, ...

  3. python中字典排序

    一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a ...

  4. python 对字典"排序"

    对字典进行排序?这其实是一个伪命题,搞清楚python字典的定义---字典本身默认以key的字符顺序输出显示---就像我们用的真实的字典一样,按照abcd字母的顺序排列,并且本质上各自没有先后关系,是 ...

  5. Python - DICT 字典排序 - OrderedDict

    官方地址: https://docs.python.org/2/library/collections.html#collections.OrderedDict >>> # regu ...

  6. Python [习题] 字典排序

    [习题] 对此字典分别按照value 和key 如何排序? dic1 = {'and':40, 'a':54, 'is':60, 'path':139, 'the':124, 'os':49} In ...

  7. python给字典排序

    应用场景: 统计一篇文章中单词的出现频率,然后进行排序 利用sorted函数,返回一个已经排序好的list,但不改变原来的数据结构 In [1]: dt = {'a':3,'b':2,'c':1} I ...

  8. [Python] dict字典排序和多条件排序

    利用lambda实现排序:要实现多条件排序,只需要依次指定排序的标准,具体实现如下 counter = {'是': 1, '不是': 1, '你': 3} counter_list = sorted( ...

  9. python基础 字典排序

    stus = [ {"name":"zhang","age":18}, {"name":"lisi" ...

随机推荐

  1. Delphi 7下最小化到系统托盘(主要是WM_TRAYMSG和WM_SYSCOMMAND消息)

    在Delphi 7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本.定义如下: 123456789   _NOTIFY ...

  2. winform实现DataGridView全选

    之前写过,一时想不起来就在网上找了一些.结果感觉好麻烦.于是就自己打开之前做过的功能.找到源码. private void CheckDatabasexuan() { DataGridViewChec ...

  3. C#高性能大容量SOCKET并发(十一):编写上传客户端

    原文:C#高性能大容量SOCKET并发(十一):编写上传客户端 客户端封装整体框架 客户端编程基于阻塞同步模式,只有数据正常发送或接收才返回,如果发生错误则抛出异常,基于TcpClient进行封装,主 ...

  4. 向github提交本地项目

    首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ 我们使用git需要先安装git工具,这里给出下载地址,下载后一路直接安装即可: https://gi ...

  5. nltk处理文本

    nltk(Natural Language Toolkit)是处理文本的利器. 安装 pip install nltk 进入python命令行,键入nltk.download()可以下载nltk需要的 ...

  6. C# ACCESS 查询提示“至少一个参数没有被指定”问题

    错误的SQL指令如下: sqlStr = “select * from  tb_userInfo where userName=” + userName;    //错误的 sql 指令 正确的SQL ...

  7. 解除.NET中虚拟路径的疑惑

    今天部署产品时,发现一个涉及到路径错误的bug,在开发环境下都OK,但是到了测试环境中却一直报错,经过一番排查,原来错误出在了HttpContext.Current.Server.MapPath这个方 ...

  8. Linux用户和权限

    用户和用户组管理 linux使用用户和组来限制资源的使用. 在linux上运行任何程序或命令都要以一个具体的用户来运行,这个用户的权限决定了相应的程序能访问的资源和能执行的操作. 用户相关命令 组是用 ...

  9. ABAP中SPLIT关键字 当分隔符位于字符串首尾时

    使用SPLIT关键字将一个字符串按某个分隔符拆分,如果分隔符穿插在字符串中间(即首尾字符均不是分隔符的情况),我们很容易知道拆分后的结果,但如果分隔符恰好位于字符串首或者末尾呢? 如下面的代码所示,在 ...

  10. 关于案例中核心dao的解释

    很多小伙伴不太理解核心dao,说这是干什么的,接下来我将一一为大家解答: 1.说到核心dao不得不说到单表操作,单表操作顾名思义是对单张数据库表的CRUD操作,实际情况中我们追求将表与表的关系映射到对 ...