在我们平常想要获取字典中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)

保留键的情况下取字典中最大的值(max\zip函数的联合使用)的更多相关文章

  1. 在jsp中选中checkbox后 将该记录的多个数据获取,然后传到Action类中进行后台处理 双主键情况下 *.hbm.xml中的写法

    在jsp中选中checkbox后 将该记录的多个数据获取,然后传到Action类中进行后台处理 双主键情况下 *.hbm.xml中的写法   ==========方法1: --------1. 选相应 ...

  2. [错误记录_C] 还未给指针变量正确赋值的情况下,就使用它的值

    错误的代码: 错误的结果:  错误原因分析: 在使用(1) 将pB,pC的值赋给pA的lchild和rchild时: 还未给指针变量pB和pC赋值,现在pB和pC中存的是个垃圾值 Note: (2)- ...

  3. MVC下 把数据库中的byte[]值保存成图片,并显示在view页面

    MVC下 把数据库中的byte[]值转成图片,并显示在view页面 controller中的action方法 //显示图片[AllowAnonymous]public ActionResult Sho ...

  4. 不修改模板的前提下修改VisualState中的某些值

    原文链接:不修改模板的前提下修改VisualState中的某些值 - 超威蓝火 UWP里有一件非常令人不爽的事,大部分控件只提供了Normal状态下的Background,Foreground,Bor ...

  5. 如何在不使用系统函数的情况下实现PHP中数组系统函数的功能

    PHP中为我们提供了各种各样的系统函数来实现我们需要的各种功能,那么,在不使用系统函数的情况下我们要怎样来实现这些功能呢?以下就是几种系统函数的实现方式. 首先,我们来定义一个数组: $arr= ar ...

  6. 利用js取到下拉框中选择的值

    现在的需求是:下拉框中要是选择加盟商让其继续选择学校,要是选择平台管理员则不需要选择学校.隐藏选择下拉列表. 选择枚举值: /// <summary> /// 平台角色 /// </ ...

  7. iOS怎么判断字典中存在nil值

    遍历字典中的key,然后根据key值取出对应的value如:for (NSString *key in dict) { //处理字典的键值 NSString *value = dict[key]; i ...

  8. python中lambda,map,reduce,filter,zip函数

    函数式编程 函数式编程(Functional Programming)或者函数程序设计,又称泛函编程,是一种编程范型,它将计算机运算视为数学上的函数计算,并且避免使用程序状态以及易变对象.简单来讲,函 ...

  9. Python中如何取字典中的键值

    1 for k,v in DictName.items(): 2 #遍历字典的键值对,k对应键,v对应值 3 #k,v 的名字可以自己取,DictName是字典名 举例: tv_dict = {'芒果 ...

随机推荐

  1. leetcode算法:Reshape the Matrix

    In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a new o ...

  2. python三元操作符

    #比较大小更简单了 x,y=3987,24361 small=(x if x<y else y) print(small)   #方法一:比较三个数的大小找出较大的一个 x,y,z=8,1,13 ...

  3. jacascript AJAX 学习

    前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! AJAX 是 asynchronous javascript and XML 的简写,就是异步的 java ...

  4. Extensions in UWP Community Toolkit - WebViewExtensions

    概述 UWP Community Toolkit Extensions 中有一个为 WebView 提供的扩展 - WebViewExtensions,本篇我们结合代码详细讲解 WebView Ext ...

  5. Collection集合框架详解

    [Java的集合框架] 接口: collection      map list     set 实现类: ArryList   HashSet HashMap LinkList   LinkHash ...

  6. 走在spring的路上。。。。

    一些spring的概念理解: 1.为什么需要spring? spring与我们平时用的工厂模式最大的差别在于,工厂模式设计还需要单独去建一个工厂类并去维护它, 而spring可只通过配置文件便可创建并 ...

  7. [LeetCode] Partition to K Equal Sum Subsets 分割K个等和的子集

    Given an array of integers nums and a positive integer k, find whether it's possible to divide this ...

  8. nginx 安装及简单配置(适用 小白)

    一.nginxNginx是一个异步框架的 Web服务器,也可以用作反向代理,负载平衡器 和 HTTP缓存,Nginx可以部署在网络上使用FastCGI脚本.SCGI处理程序.WSGI应用服务器或Phu ...

  9. kafka知识体系-kafka设计和原理分析-kafka leader选举

    kafka leader选举 一条消息只有被ISR中的所有follower都从leader复制过去才会被认为已提交.这样就避免了部分数据被写进了leader,还没来得及被任何follower复制就宕机 ...

  10. 使用.Net+非关系型数据库MongoDB 实现LBS商家按距离排序_按离我最近排序

    .Net MongoDB LBS地理位置定位 开发过程,实现商家按距离排序 前言: 在使用美团点外卖,看电影,找好吃的时候,经常会注意到软件有一个按距离排序,找离我最近的商家,心中有一些疑问,.Net ...