[转]Python3之max key参数学习记录
Python3之max key参数学习记录
转自https://www.cnblogs.com/zhangwei22/p/9892422.html
今天用Python写脚本,想要实现这样的功能:对于给定的字典,返回其中Value最大值对应的Key。
搜索后找到了解决方法,同时也学到了max key参数的作用。
例1,
1
2
|
testlist = [ 9.2 , 10 , - 20.3 , - 7.0 , 9.999 , 20.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.2 , 10 , - 20.3 , - 7.0 , 9.999 , 20.111 ] print ( max (testlist, key = func)) #结果与例1一致 |
该func是自定义的函数。
对于简单的方法,一般使用lambda函数。
例3,
1
2
|
testlist = [ 9.2 , 10 , - 20.3 , - 7.0 , 9.999 , 20.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参数学习记录的更多相关文章
- Python3之max key参数学习记录
今天用Python写脚本,想要实现这样的功能:对于给定的字典,返回其中Value最大值对应的Key. 搜索后找到了解决方法,同时也学到了max key参数的作用. 例1, testlist = [9. ...
- 带有key参数的函数filter,map,max,min
内置函数———filter def is_not_empty(s): return s and len(s.strip()) > 0 filter(is_not_empty, ['test', ...
- python四个带 key 参数的函数(max、min、map、filter)
四个带 key 参数的函数: max()点击查看详细 min()点击查看详细 map()点击查看详细 filter()点击查看详细 1)max(iterable, key) key:相当于对可迭代对象 ...
- Matlab 进阶学习记录
最近在看 Faster RCNN的Matlab code,发现很多matlab技巧,在此记录: 1. conf_proposal = proposal_config('image_means', ...
- Python学习记录:括号配对检测问题
Python学习记录:括号配对检测问题 一.问题描述 在练习Python程序题的时候,我遇到了括号配对检测问题. 问题描述:提示用户输入一行字符串,其中可能包括小括号 (),请检查小括号是否配对正确, ...
- DP学习记录Ⅰ
DP学习记录Ⅱ 前言 状态定义,转移方程,边界处理,这三部分想好了,就问题不大了.重点在状态定义,转移方程是基于状态定义的,边界处理是方便转移方程的开始的.因此最好先在纸上写出自己状态的意义,越详细越 ...
- Python学习记录day6
title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...
- Python学习记录day5
title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...
- 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 ...
随机推荐
- js数组转对象
var obj = {}; var arr = [1,2,3,4,5]; for (var x in arr){ obj[x] = x; } 2.ES6的Object.assign: Object.a ...
- JAVA中为什么要使用接口,继承接口不是还要重写方法吗?为什么不直接写那些方法呢?:::接口的最主要的作用是达到统一访问
接口的最主要的作用是达到统一访问 那么什么叫统一访问呢 举个例子 你这样想,我做一个USB接口,有个读的抽象方法 那叫read()吧,然后mp3类实现,U盘类实现,移动硬盘类实现,这样我用的时候用US ...
- spice在桌面虚拟化中的应用系列之一(spice简介,性能优化等)
1.spice介绍 1.1 spice简介 spice是由Qumranet开发的开源网络协议,2008年红帽收购了Qumranet获得了这个协议.SPICE是红帽在虚拟化领域除了KVM的又一“新兴技术 ...
- Bootstrap学习地址
第一步:https://www.runoob.com/bootstrap/bootstrap-tutorial.html //菜鸟教程 第二步:https://v3.bootcss.com/gett ...
- springboot整合freemarker模板引擎后在页面获取basePath绝对路径
在项目中引用静态资源文件或者进行ajax请求时我们有时候会使用 ${basePath} ,其实这就是一种获取绝对路径的方式: 那么在springboot项目中要怎么配置才能使用 basePaht呢? ...
- 【转】通过BeanNameAutoProxyCreator改变臃肿代码
https://www.cnblogs.com/zdd-java/p/7861824.html 前言: 最近接手了一个项目,大概过了下需求,然后打开项目准备开搞的时候发现一个问题,这个项目是提供res ...
- Castle Windsor Ioc 一个接口多个实现解决方案
介绍 Castle Windsor 是微软的Ioc类库,本文主要介绍解决一个接口多个实现的解决方案 接口和类 以下内容不是真实的实际场景,仅仅是提供解决一个接口多个实现的思路. 业务场景类 先假设有一 ...
- STM32F10XX学习笔记的石墨连接
https://shimo.im/docs/QHGRrWxbeb0NiBm9/ <STM32F10X系列笔记>,可复制链接后用石墨文档 App 打开
- UWB DWM1000 开源项目框架
UWB 目前比较火热,不论国内还是国外目前都掀起一股热潮. 但是实际工程代码很少,开源代码更少. 目前代码主要有 1 DecaWave Release的定位源码,代码基于TWR,一个非常大的状态机. ...
- 54、servlet3.0-ServletContainerInitializer
54.servlet3.0-ServletContainerInitializer Shared libraries(共享库) / runtimes pluggability(运行时插件能力) 1.S ...