• 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. WPF RichTextBox 导出与加载

    private void Button_Click(object sender, RoutedEventArgs e) { string savePth = System.IO.Path.Combin ...

  2. Plupload上传实例《模仿微云上传实例》,带源码

    Plupload上传实例<模仿微云上传实例>,带源码,作者:鱼塘总裁 如有疑问,加群交流:646104701 一.实例截图 1.上传过程 2.上传成功 3.上传失败 4.最小化 二.所需文 ...

  3. Win8Metro(C#)数字图像处理--2.22二值图像膨胀

    原文:Win8Metro(C#)数字图像处理--2.22二值图像膨胀  [函数名称] 二值图像膨胀函数DilationProcess(WriteableBitmap src) [算法说明]  膨胀 ...

  4. 领域驱动设计(DDD)的实践经验分享之ORM的思考

    原文:领域驱动设计(DDD)的实践经验分享之ORM的思考 最近一直对DDD(Domain Driven Design)很感兴趣,于是去网上找了一些文章来看看,发现它确实是个好东西.于是我去买了两本关于 ...

  5. Docker笔记02-日志平台ELK搭建

    OS: Centos7 准备工作: 虚拟机中安装Centos, 搭建Docker环境 ELK简介: 略 文档地址 https://elk-docker.readthedocs.io/ 需要注意的是在B ...

  6. 国家气象局 天气预报 城市代码(JSON格式)

    如题 { "城市代码": [ { "省": "北京", "市": [ { "市名": "北 ...

  7. 解决com.android.dex.DexException: Multiple dex files define Lcom/google/gson/JsonSerializer;

    我在开发Windows Azure的Mobile Service(隔天补上创建过程)的安卓客户端时,报出了com.android.dex.DexException: Multiple dex file ...

  8. 【DRP】-完成物料修改页面Servlet和JSP开发

    本系列博客内容为:做DRP系统中的常用功能. 该项目采用MVC架构 C(Controller)控制器,主要职责;1.取得表单参数:2.调用业务逻辑:3.转向页面 M(Model)模型,主要职责:1.业 ...

  9. 高可用的zookeeper

    Install zookeeper wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13 ...

  10. 2019年5月23日 AY 程序员调侃语录

    我是AY,杨洋,做wpf开发的,最近得了一种病,程序员患得患失综合征.同事说,我年纪在变大,技术跟不上.业余之间,我原创了写了一些语录,给大家中午休息,累疲惫的时候,开心放松下. 1.有很多公司找我谈 ...