Python3之max key参数学习记录

今天用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

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

时间: 2024-10-27 08:44:42

Python3之max key参数学习记录的相关文章

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

四个带 key 参数的函数: max()点击查看详细 min()点击查看详细 map()点击查看详细 filter()点击查看详细 1)max(iterable, key) key:相当于对可迭代对象iterable每个元素的预处理. #返回key参数中的匿名函数返回的值中最大一个所对应的iterable参数中的值. max('ah', 'bf', key=lambda x: x[1]) 2)min(iterable, key) 点击查看详细 3)map(iterable, key) 点击查看详

Python学习记录day3

Python学习记录 day3 今天是银角大王武sir讲课.先回顾了上节课所学,然后讲到了面向对象思想. set set是一个无序且不重复,可嵌套的元素集合 class set(object):     """     set() -> new empty set object     set(iterable) -> new set object     Build an unordered collection of unique elements.     

Python学习记录day6

Python学习记录day6 学习 python Python学习记录day6 1.反射 2.常用模块 2.1 sys 2.2 os 2.3 hashlib 2.3 re 1.反射 反射:利用字符串的形式去对象(默认)中操作(寻找)成员 cat commons.py #!/usr/bin/env python#_*_coding:utf-8_*_''' * Created on 2016/12/3 21:54. * @author: Chinge_Yang.''' def login(): pr

ELK stack 学习记录

ELK日志分析平台学习记录 首先ELK主要指elasticsearch .logstash 和kibana,三个开源软件组合而成的一套日志平台解决方案.可以将平时收集到的日志,通过前台展示出来,并且可以加以分析,理论上可以解放劳动力(再也不用干上生产取日志这种活了--很搓). 最近在研究ELKstack日志分析平台,网上相关的中文资料不多.所以呢也就写了这篇文章将自己的一些学习认识总结记录下来,基本偏实战,概念理论较少,概念这块,我想以后可以再开一篇文章来做一个阐述总结. 这篇文章中会先讲一下搭

学习记录: 安装配置自动化工具ansible

学习记录:  安装配置ansible 更新日期: 2016-11-30 系统环境    :centos6.5 本机ip        :192.168.233.123 被管理机ip :192.168.233.124 ------------------------------------- py版本       :   默认python2.6 ansible版本:ansible 1.7.2 ansible参数:             -m  模块名(执行命令)              -a

salt的api学习记录(一)

现在终于开始学习salt的api了,有些小激动啊,我们执行命令的时候,后台到底是如何处理的,发生什么了事情,我对着一切有着强烈的好奇心啊. 这些是saltstack命令对应的api: salt  --->salt.client.LocalClient  salt-cp  --->salt.cli.cp.SaltCP  salt-key --->salt.key.KeyCLI salt-call --->salt.cli.caller.caller salt-run --->s

Python学习记录day5

title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 1.多层装饰器 多层装饰器的原理是装饰器装饰函数后其实也是一个函数这样又可以被装饰器装饰. 编译是从下至上进行的执行时是从上至下进行. #!/usr/bin/env python # _*_coding:utf-8_*_ ''' * Created on 2016/11/29 20:38. * @author: Chinge_Yang. ''' USER

【转】BLE 学习记录

原文网址:http://m.blog.csdn.net/blog/chiooo/43985401 BLE 学习记录 ANROID BLE 开发,基于 bluetoothlegatt 分析 mBluetoothAdapter = mBluetoothManager.getAdapter(); 得到 手机上蓝牙主机的适配器 mBluetoothAdapter public boolean initialize() { // For API level 18 and above, get a refe

流畅的python第二章序列构成的数组学习记录

python内置序列类型概览 列表推导和生成器表达式 列表推导是构建列表的快捷方式,而生成器表达式可以用来创建其他任何类型的序列 列表推导的示例 >>>test = [i*2 for i in range(3)] >>>test [0,2,4] 使用列表推导通常的原则是,只能列表推导来创建新的列表,并且尽量保持简短. python2中列表推导可能有变量泄露问题,而python3解决了变量泄露问题 列表推导和map/filter的对比 生成器表达式 虽然也可以用列表推导来