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. Android状态栏和导航栏

    1.隐藏状态栏或导航栏 View decordView = getWindow().getDecorView(); /*SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI ...

  2. 作为一名SAP从业人员,需要专门学习数学么

    最近和SAP成都研究院的开发同事聊到过这个话题,Jerry来说说自己的看法. 先回忆回忆自己本科和研究生学过的数学课程.Jerry的大一生活是在电子科技大学的九里堤校区度过的,本科第一门数学课就是微积 ...

  3. kubernetes 资源清单定义入门

    k8s中的资源 什么叫资源? k8s中所有的内容都抽象为资源, 资源实例化之后,叫做对象 在k8s中有哪些资源? 工作负载型资源(workload): Pod ReplicaSet Deploymen ...

  4. 微信APP支付(基于Java实现微信APP支付)

    步骤: 导入maven依赖 <!--微信支付--> <dependency> <groupId>com.github.wxpay</groupId> & ...

  5. Needham-Schroeder协议的形式化描述语言

    1.对TLS1.3协议形式化描述过程 第一步:   Needham-Schroeder 过程的分析 常量和变量的定义: /* * Needham-Schroeder过程的形式化描述 */ // THE ...

  6. AD 复制状态检查

      微软提供了一下工具进行AD复制状态检查 Repadmin: http://technet.microsoft.com/en-us/library/cc811551%28v=ws.10%29.asp ...

  7. 助教培训总结——熟练掌握GitHub及Git的使用方法

    一.Git 命令的理解和使用 1.使用git前需要建立一个本地仓库,用Git GUI Here的话就可以直接选择Create New Repository.Git Bash Here输入 命令git ...

  8. 个性化召回算法实践(二)——LFM算法

    LFM算法核心思想是通过隐含特征(latent factor)联系用户兴趣和物品,找出潜在的主题和分类.LFM(latent factor model)通过如下公式计算用户u对物品i的兴趣: \[ P ...

  9. MySQL进阶16 - 视图的创建/修改/删除/更新--可更新性的不适用条件

    #进阶16 : 视图 /* 含义: 虚拟表,和普通表一样使用;(从5.1开始使用的:)是通过表动态生成的数据 创建语法: create view 视图名 as 查询语句; ---------- 作用: ...

  10. 前端处理:elementUI 表格索引代表第几条数据

    分析:表格结合分页 知识点:1.表格的自定义索引(索引以当前行的行号作为参数)number, Function(index)该属性传入数字时,将作为索引的起始值.也可以传入一个方法,它提供当前行的行号 ...