Python3之字典生成器结合lambda实现按key/value排序

1、先介绍不常见的字典按value排序:

dict1 = {"g": 2, "f": 1, "a": 6}
print(dict1.values())
d1 = sorted(dict1.items(), key=lambda d: d[1], reverse=True)    # 按字典values倒序排序
d2 = sorted(dict1.items(), key=lambda d: d[1])   # # 按字典values正序排序
print(d1)
print(d2)

输出:
[('a', 6), ('g', 2), ('f', 1)]
[('f', 1), ('g', 2), ('a', 6)]
解释:d[1]表示按字典的value排序,若是0则按字典的key排序(文末有示例),大概的意思就是相当于for遍历dict1.items(),那么每次遍历key是第一个(索引0),value是第二个(索引1)。
然后这里返回的是列表,列表中包含多个元组

2、如果想返回字典,可以借用字典生成器:

dict1 = {"g": 2, "f": 1, "a": 6}
d1 = {i[0]: i[1] for i in sorted(dict1.items(), key=lambda d: d[1])}

输出:
{'f': 1, 'g': 2, 'a': 6}
解释:
sorted(dict1.items(), key=lambda d: d[1])还是跟上面一样,只是多了个字典生成器,它跟列表生成式差不多,i[0]是key,而i[1]是value

3、如果要按key排序
将标号1中d[1]改为d[0]即可:

dict1 = {"g": 2, "f": 1, "a": 6}
d1 = {i[0]: i[1] for i in sorted(dict1.items(), key=lambda d: d[0])}
print(d1)

out:
{'a': 6, 'f': 1, 'g': 2}

Python3之字典生成器结合lambda实现按key/value排序相关推荐

  1. python3 yield 大文件_详解Python3中yield生成器的用法

    任何使用yield的函数都称之为生成器,如: def count(n): while n > 0: yield n #生成值:n n -= 1 另外一种说法:生成器就是一个返回迭代器的函数,与普 ...

  2. python3.6字典有序_Python如何按值对字典进行排序?

    我有一个从数据库中的两个字段中读取值的字典:一个字符串字段和一个数字字段.字符串字段是唯一的,所以这是字典的关键. 我可以对键进行排序,但是如何根据这些值进行排序? 注意:我已阅读Stack Over ...

  3. python3高级 之 生成器

    生成器 利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成.但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据.为 ...

  4. python3 有序字典

    python3 有序字典 查看帮助文档: 可以发现,所谓有序字典,是记录了插入顺序 很显示 ,最后字典的顺序就是你插入键值对的顺序 方法介绍:(OD,代表字典名,点后面为方法) OD.clear(), ...

  5. Python3.x:生成器简介

    Python3.x:生成器简介 概念 任何使用yield的函数都称之为生成器:使用yield,可以让函数生成一个序列,该函数返回的对象类型是"generator",通过该对象连续调 ...

  6. 使用Lambda表达式对中文拼音排序(按中文字典排序)

    使用Lambda表达式对中文拼音排序(中文字典排序) 今天项目上有一个需求,要求对用户名按照拼音排序(不通过数据库端SQL操作),由于用户名为中文,所以使用常规排序并不能解决问题. package l ...

  7. 详解Python3中yield生成器的用法

    这篇文章主要介绍了详解Python3中yield生成器的用法,是Python入门学习中的基础知识,需要的朋友可以参考下 任何使用yield的函数都称之为生成器,如: def count(n):whil ...

  8. Crunchx--基于文法的字典生成器

    Crunchx--基于文法的字典生成器 写在前面的话 第一次在CSDN上写博客,N年后夜深人静的某个地点,夏末,微凉,终于可以静下心来写下拙文. 背景 很长一段时间,对wifi破解尤为感兴趣,很长时间 ...

  9. Pydictor字典生成器操作手册

    声明:请于合法授权环境下进行使用,请勿用于非法操作! Pydictor字典生成器操作手册 0x01 简介 pydictor 是一个使用 python 语言开发,通过命令行生成爆破字典的强大工具,包含有 ...

最新文章

  1. python colormap函数_python-使用由x,y位置定义的rgb值创建colormap
  2. windows目录内打开CMD的几种方法
  3. vue-cli构建的vue项目中引入stylus文件
  4. spring jdbctemplate源码跟踪
  5. VelocityTracker简单介绍
  6. 数据中心自动化及其优势
  7. 【存储知识学习】第十章- NAS和SAN《大话存储》阅读笔记
  8. boost::sort模块实现相关的浮点排序测试
  9. python 实现感知器(一)
  10. JavaScript中使Promise模式进行异步编程
  11. C#下如何实现服务器 + 客户端的聊天程序
  12. 理解Node.js的event loop
  13. 360公司2019秋季校园招聘内部推荐启动啦!!!
  14. nodejs-express
  15. JAVA虚拟机创建对象
  16. java.io.FileNotFoundException: /opt/shan/es/logs/elasticsearch_index_indexing_slowlog.json (权限不够)
  17. HTML5之 Microdata微数据
  18. c语言中ANSI标准的关键字,C语言中32个关键字详解
  19. 百度网盘网页版视频在线倍速播放
  20. 学数据挖掘就要懂数据

热门文章

  1. 合并分ER图产生的冲突
  2. php执行npm命令_npm系列之命令执行
  3. 深度学习目标检测之 YOLO v2
  4. word 编辑域中的汉字_word中插入的cad对象无法双击编辑问题解决记录
  5. iconsvg image怎么变为path_昆凌是怎么收服天王周杰伦的?这几招太高明了
  6. 破坏计算机系统既遂的标准,破坏计算机信息系统罪的量刑标准是什么
  7. python 分布图_python数据分布型图表柱形分布图系列带误差线的柱形图
  8. data怎么给echart传值_通用技术 VUE 子父组件传值
  9. 秒懂机器学习---当机器学习遇上决策树....
  10. tornado框架基础11-tornado异步