python 学习笔记(三)根据字典中值的大小对字典中的项排序
字典的元素是成键值对出现的,直接对字典使用sorted() 排序,它是根据字典的键的ASCII编码顺序进行排序,要想让字典根据值的大小来排序,可以有两种方法来实现:
一、利用zip函数将字典数据转化为元组再用sorted() 排序
from random import randint
# 用随机函数生成待排序的字典数据
my_dict = {x: randint(60, 100) for x in 'abcxyzgkj'}
# 将字典数据转化为元组,把字典的值作为元组的第0项,键作为元组的第1项
my_tuple = zip(my_dict.values(), my_dict.keys())
# 打印输出排序后的结果
print(sorted(my_tuple))
二、传递sorted函数的key参数指定为字典的值
sorted函数的格式:sorted(iterable,key,reverse),sorted有iterable,key,reverse三个参数。
iterable 表示可以迭代的对象,例如可以是dict.items()、dict.keys()等。
key 是一个函数,通常使用使用lambda匿名函数来实现,用来选取参与比较的元素。
reverse 用来指定按倒序还是顺序排序,reverse=True是倒序,reverse=False是顺序,默认reverse=False。
from random import randint
# 用随机函数生成待排序的字典数据
my_dict = {x: randint(60, 100) for x in 'abcxyzgkj'}
# 把my_dict.items()所得列表中每个元组的第二个元素(value)传到lambda函数进行排序
result = sorted(my_dict.items(), key=lambda x: x[1]) # x[0]是字典的键,x[1]是字典的值
# 打印输出排序后的结果
print(result)
第一种方法是对字典中键值的全面比较,先比较值的大小,如果两者相等会接着比较键的大小来排序;第二种方法只比较指定的值的大小,如果两者相等则不会比较键的大小,只依照顺序来排序。
python 学习笔记(三)根据字典中值的大小对字典中的项排序的更多相关文章
- python数据结构-如何根据字典中值的大小对字典项排序
如何根据字典中值的大小对字典项排序 问题举例 某班英语成绩以字典形式存储,如何根据成绩高低,计算学生成绩排名 { “tom”:80, "lily":88, "marton ...
- python学习笔记(三)、字典
字典是一种映射类型的数据类型.辣么什么是映射呢?如果看过<数据结构与算法>这一本书的小伙伴应该有印象(我也只是大学学习过,嘻嘻). 映射:就是将两个集合一 一对应起来,通过集合a的值,集合 ...
- python学习笔记(三)-列表&字典
列表: 一.列表操作"""Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素.比如,列出班里所有同学的名字,就可以用一 ...
- python学习笔记(三)---字典
字典 在Python中,字典 字典 是一系列键 键-值对 值对 .每个键 键 都与一个值相关联,你可以使用键来访问与之相关联的值.与键相关联的值可以是数字.字符串.列表乃至字典.事实上,可将 任何Py ...
- python学习笔记三--字典的使用
一.基本使用: 1. 赋值:{key:value} 1.1 与列表相同处:会改变索引(键)相关联的值的改变 1.2 与列表不同处:不用考虑值的长度,而列表是有序的需要考虑末尾偏移量,超过末尾偏移量的会 ...
- Python学习笔记三
一. 为什么要使用函数? 函数可以方便阅读代码. 函数可以减少重复代码. 函数可以减少管理操作,减少修改操作. 二. 函数分类: 内置函数:len() sum() max() min() ...
- python学习笔记三 深浅copy,扩展数据类型(基础篇)
深浅copy以及赋值 对于字符串和数字而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. import copy n1 = #n1 = 'hahahaha' #赋值n2 = n1#浅co ...
- python学习笔记三——控制语句
2.5 运算符与表达式 2.5.1 算术运算符和算术表达式 算术运算符包括四则运算符.求模运算符和求幂运算符. 算术运算符 加减乘除:+ - * / 表达式:x+y x-y x*y x/y ...
- Python 学习 第三篇:数组类型(列表、字典和元组)
列表和字段都可以在原处进行修改,可以按照需求增长或缩短,并且可以包含任何类型的对象或被嵌套.列表和字典存储的是对象的引用,而不是拷贝. 一,列表 列表是有序的序列,每一个列表项的顺序是固定的,这使得列 ...
随机推荐
- 8.5.zookeeper应用案例_分布式应用HA
1.实现分布式应用(主节点HA)及客户端动态更新主节点状态 需求:某分布式系统中,主节点可以有多台,服务器可以动态(变化)上下线,任意一台客户端都能实时感知到主节点服务器的上下线 思路:架设Zooke ...
- jQuery获取表单全部数据
iQuery如何获取表单的全部数据,用于ajax提交 var formData = {}; var t = $('#Form').serializeArray(); $.each(t, functio ...
- Linux 之Ubuntu在VM中安装(桌面版)
1.安装系统 https://jingyan.baidu.com/article/14bd256e0ca52ebb6d26129c.html 2.安装VM Tools https://jingyan. ...
- Java语言基础(15)
1 综合案例 Demo1 设计一个父类Shape(图形类),抽象类常量:public static final double PI = 3.14;抽象方法:void show():输出每一个属性值vo ...
- 201271050130-滕江南-《面向对象程序设计(java)》第十七周学习总结
201271050130-滕江南-<面向对象程序设计(java)>第十七周学习总结 博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.c ...
- Tomcat管理页面
下面就是 Manager的界面: Server Status 上面个两个配置任意一个配置好了后,都可以启用Server Status的GUI界面:
- C# 各个版本特征
历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持.微软将C#提交给标准组织ECMA,C# 5.0目前是ECM ...
- Django2.1.1与xadmin0.6.0遇到的坑
Django2.1.1与xadmin0.6.0遇到的坑 BlueMiaomiao关注4人评论11188人阅读2018-09-23 12:17:56 (1)django2.0把from django.c ...
- JMeter性能测试,完整入门篇(转)
原文转自:https://blog.csdn.net/lovesoo/article/details/78579547 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件 ...
- linux安装locust及遇到的坑
安装locust很简单,简单的我以为pip install一下就好了,结果运行locust死活不行,后来的后来,,才搞清楚还要进行以下操作. 前提: 1.已安装Python3和pip3(或者都是2,版 ...