Python3之max key参数学习记录

转自https://www.cnblogs.com/zhangwei22/p/9892422.html

今天用Python写脚本,想要实现这样的功能:对于给定的字典,返回其中Value最大值对应的Key。

搜索后找到了解决方法,同时也学到了max key参数的作用。

例1,

1
2
testlist = [9.210-20.3-7.09.99920.111]
print(max(testlist, key=abs))  #返回 -20.3

获取testlist中绝对值最大的元素。

key关键字的作用是,对每个testlist元素先使用key指定的function来处理,然后再比较、返回预期的元素。

key参数的值也可以使用自定义函数。

例2,

1
2
3
4
def func(n):
    return abs(n)<br>
testlist = [9.210-20.3-7.09.99920.111]
print(max(testlist, key=func))  #结果与例1一致 

该func是自定义的函数。

对于简单的方法,一般使用lambda函数。

例3,

1
2
testlist = [9.210-20.3-7.09.99920.111]
print(max(testlist, key=lambda x: abs(x)))  #结果与例1、例2一致

使用lambda函数作为key的参数。

例4,

1
2
3
probabilities_dict = {'Sunny'0.30'Cloudy'0.35'Windy'0.15'Rainy'0.20}
print(max(probabilities_dict, key=lambda x: probabilities_dict[x]))  #返回 Cloudy
print(max(probabilities_dict, key=probabilities_dict.get))  #返回 Cloudy  

这里,对于probabilities_dict字典的每一个元素(即字典的Key),使用key参数指定的方法进行处理,然后再比较、返回预期的字典Key。

下面的这句依次打印字典的Key、dict.get(Key)的值:

1
2
for key in probabilities_dict:
    print(key, probabilities_dict.get(key), sep=': ', end=', ')  #返回 Sunny: 0.3, Cloudy: 0.35, Windy: 0.15, Rainy: 0.2,

  

 

巨人的肩膀:

https://www.cnblogs.com/whatisfantasy/p/6273913.html

https://stackoverflow.com/questions/18296755/python-max-function-using-key-and-lambda-expression

[转]Python3之max key参数学习记录的更多相关文章

  1. Python3之max key参数学习记录

    今天用Python写脚本,想要实现这样的功能:对于给定的字典,返回其中Value最大值对应的Key. 搜索后找到了解决方法,同时也学到了max key参数的作用. 例1, testlist = [9. ...

  2. 带有key参数的函数filter,map,max,min

    内置函数———filter def is_not_empty(s): return s and len(s.strip()) > 0 filter(is_not_empty, ['test', ...

  3. python四个带 key 参数的函数(max、min、map、filter)

    四个带 key 参数的函数: max()点击查看详细 min()点击查看详细 map()点击查看详细 filter()点击查看详细 1)max(iterable, key) key:相当于对可迭代对象 ...

  4. Matlab 进阶学习记录

    最近在看 Faster RCNN的Matlab code,发现很多matlab技巧,在此记录: 1. conf_proposal  =  proposal_config('image_means', ...

  5. Python学习记录:括号配对检测问题

    Python学习记录:括号配对检测问题 一.问题描述 在练习Python程序题的时候,我遇到了括号配对检测问题. 问题描述:提示用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确, ...

  6. DP学习记录Ⅰ

    DP学习记录Ⅱ 前言 状态定义,转移方程,边界处理,这三部分想好了,就问题不大了.重点在状态定义,转移方程是基于状态定义的,边界处理是方便转移方程的开始的.因此最好先在纸上写出自己状态的意义,越详细越 ...

  7. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  8. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  9. Using innodb_large_prefix to avoid ERROR #1071,Specified key was too long; max key length is 1000 bytes

    Using innodb_large_prefix to avoid ERROR 1071        单列索引限制上面有提到单列索引限制767,起因是256×3-1.这个3是字符最大占用空间(ut ...

随机推荐

  1. Java 之 网络编程基础

    一.软件结构 C/S 结构:全称为 Client/Server 结构,是指客户端和服务器结构.常见的程序有微信,QQ,迅雷等软件. B/S 结构:全称 Brower/Server 结构,是指浏览器和服 ...

  2. SAP Marketing Cloud功能简述(二) : Target Group

    这个系列的第一篇文章 SAP Marketing Cloud功能简述(一) : Contacts和Profiles,我向大家介绍了SAP Marketing Cloud里的Contacts和Profi ...

  3. 碰撞器Colider 触发器

    碰撞器可以让所依附的游戏物件对其他碰撞体产生碰撞行为(其他游戏物体必须具有Rigidbody组件) 对于不规则形状的物体,通常使用组合式碰撞体而不是网格碰撞器,以为网格碰撞器以模型的网格为基础,更为复 ...

  4. c# 属性成员

  5. TLS握手秘钥套件分析

    1.为了弄清楚TLS1.3的内部结构,觉得有必要将TLS的整个结构从新整理一遍,方便后续在做握手协议的形式化分析的时候能够不遗漏每个加密和认证的的环节. TLS1.3不论文在协议内容上还是性能上都较之 ...

  6. SpringBoot框架之通用mapper插件(tk.mybatis)

    一.Tkmybatis的好处 Tkmybatis是在mybatis框架的基础上提供了很多工具,让开发更加高效.这个插件里面封装好了我们需要用到的很多sql语句,不过这个插件是通过我们去调用它封装的各种 ...

  7. Idea中用来遍历list集合的快捷键

    使用Intellij idea时,想要快捷生成for循环代码块: itar 生成array for代码块 for (int i = 0; i < array.length; i++) { = a ...

  8. php守护进程创建和简要分析

    守护进程可 由系统启动脚本 /etc/rc.local crontab任务, 用户shell 方式运行 具体概念可参考c的 进程守护化基本步骤 1.创建子进程,终止父进程 (pcntl_fork,ex ...

  9. 神经网络(3)---如何表示hypothesis,如何表示我们的model

    大脑中的神经元 我们的大脑都充满了上图所示的神经元,神经元有一个细胞体(cell body),还有一些input wires,专业词汇叫做树突(dendrite),它们从其它地方接收输入信息,神经元还 ...

  10. 聊聊MVCC多版本并发控制

    一.介绍 MVCC只在RR和RC 2个隔离级别下才能工作.MySQL的大多数事务存储引擎实现的都不是简单的行级锁机制.基于提升并发性能的考虑,它们一般都同时实现了MVCC. 通俗的来讲,MVCC是行级 ...