码迷,mamicode.com
首页 > 编程语言 > 详细

Python3之max key参数学习记录

时间:2018-11-01 22:29:55      阅读:528      评论:0      收藏:0      [点我收藏+]

标签:处理   oba   参数   简单   ref   nta   ssi   学习   肩膀   

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

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

 

例1,

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,

def func(n):
    return abs(n)
testlist = [9.2, 10, -20.3, -7.0, 9.999, 20.111] print(max(testlist, key=func))  #结果与例1一致 

该func是自定义的函数。

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

 

例3,

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,

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)的值:

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参数学习记录

标签:处理   oba   参数   简单   ref   nta   ssi   学习   肩膀   

原文地址:https://www.cnblogs.com/zhangwei22/p/9892422.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!