保留键的情况下取字典中最大的值(max\zip函数的联合使用)
2024-08-24 04:18:59
在我们平常想要获取字典中value最大或者最小的值的时候,常常使用如下函数:
testDict = {"age1":18,"age2":20,"age2":6,"age2":100}
v1 = max(testDict.values())
print(v1) #打印结果为100
这样已经达到了获取最大值的目的,但是这样就丢失了key。要如何保留key呢,这就需要用到zip函数
zip函数的作用是将两个序列以顺序对应起来,最后生成一个列表,列表的每一个元素为含有两个元素的元组,元组的两个元素为初始两个序列相同位置元素的对应。如下所示:
testList1 = ["age1","age2","age3","age4"]
testList2 = [18,20,6,100]
v2 = zip(testList1,testList2) #返回值是一个可迭代对象
v2 = list(v2) #将可迭代对象转换为一个列表,方便打印
print(v2) #打印结果为[('age1', 18), ('age2', 20), ('age3', 6), ('age4', 100)]
利用zip函数,我们来实现最初的需求“保留键的情况下取字典中最大的值”,如下代码所示
testDict = {"age1":18,"age2":20,"age3":6,"age4":100} v1 = zip(testDict.values(),testDict.keys()) #先打包
v2 = max(v1) #再比较
print(v2) #打印结果为(100, 'age4')
以上传入max的参数为有序类型,如果想往max参数中传入无序类型进行比较又如何进行呢。
还有一种配合max的第二个参数与lambda函数结合实现更为简洁高效的方法如下:
people = [
{"name":"张三","age":18},
{"name":"李四","age":100},
{"name":"王五","age":6},
{"name":"赵六","age":20},
]
v1 = max(people,key=lambda dic:dic["age"])
print(v1)
最新文章
- html5标签canvas函数drawImage使用方法
- underscore 源码解读之 bind 方法的实现
- Centos7 wifi
- The Web server is configured to not list the contents of this directory.
- [LintCode] Valid Number 验证数字
- 所有文章都迁移到我自己的博客了:http://blog.neazor.com
- 【LeetCode】6. ZigZag Conversion 锯齿形转换
- 漫谈php全局变量Global
- YUM更换源--yum找不到安装包(转)
- position relative
- 易错点---所有的字符都自带bool值
- virtual table for class
- HAproxy增加日志记录功能和自定义日志输出内容、格式
- 网易云信&;七鱼市场总监姜菡钰:实战解读增长黑客在B端业务的运用
- How to get checksum by IAR
- Android.InstallDevelopmentEvn
- 20155238 《JAVA程序设计》实验三(敏捷开发与XP实践)实验报告
- POJ - 3436 ACM Computer Factory(最大流)
- Unix IPC之Posix消息队列(3)
- iOS开发-多线程NSOperation和NSOperationQueue
热门文章
- python flask框架 数据库的使用
- django中HttpRequest请求
- mysql基础练习题
- Struts(十六):通过CURD来学习Struts流程及ModelDriven的用法
- 关于 String,StringBuilder,StringBuffer
- 学习React系列(七)——Fragments、Portals、Error Boundaries与WEB组件
- thinkjs升级到3.0后的图片上传
- 对于手机APP偷窥个人隐私,你怎么看
- [SDOI 2013]方程
- bzoj 3191: [JLOI2013]卡牌游戏