[转]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])) #返回 Cloudyprint(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 ...
随机推荐
- 监听iframe加载完成
用 @load="loading" 在Vue里面写了一个界面,有一个iframe标签, iframe加载其他网站, <iframe @load="loading&q ...
- TR-银行主数据相关BAPI
BAPI_BANKDETAIL_CREATE FI01:BAPI_BANK_CREATE FI12:BAPI_HOUSE_BANK_REPLICATE 1011 Business Object Ban ...
- linux7 上安装mongodb4.2.1操作步骤
MongoDB是一个通用的.基于文档的分布式数据库,它是为现代应用程序开发人员和云时代而构建的.没有数据库能让你更有效率. 1.下载需要的软件包https://www.mongodb.com/down ...
- 认识和学习redis
redis VS mysql """ redis: 内存数据库(读写快).非关系型(操作数据方便) mysql: 硬盘数据库(数据持久化).关系型(操作数据间关系) 大量 ...
- 说说你对kubernetes的理解(简单)
目录 整体概述 pod工作流程 k8s网络 flannel 网络策略,network proxy 几套证书理解 组件 master管理节点上组件 node节点 整体概述 k8s是一个编排工具,是谷歌的 ...
- Python——hashlib(加密模块)
主要用于对字符串的加密,最常用的为MD5加密: import hashlib def get_md5(data): obj = hashlib.md5() obj.update(data.encode ...
- klia linux tools 使用方法整理
第一部分 信息收集工具 1.Zenmap 和nmap 作用是一样的,只是使用的操作方式不一样, Zenmap使用 的GUI,nmap 是基于命令行的.在两个使用的命令是一样的. 使用SYN扫描 就 ...
- WindowsPE
什么是WindowsPE Windows Preinstallation Environment(Windows PE),Windows预引导环境,是带有有限服务的最小Win32子系统,基于以保护模式 ...
- Sqlserver2008[索引]
SQL索引有两种:聚集索引.非聚集索引 目的:提高sqlserver 系统的性能,加快数据的查询速度与减少系统的响应时间 注意点:一个表只能有一个聚集索引,但可以有多个非聚集索引 索引的存储机制: 聚 ...
- (转)Java锁性能提高有哪些机制?
转自:https://forum.idevfun.io/t/topic/235/2 Java 中,Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的.但是监视器锁本质又 ...