python笔记–max函数操作
前言
在平时使用max和min函数时,往往只用到了其中最简单的操作,之后敲代码的时候需要通过value的最大值返回所对应的key值,发现max/min函数还有进阶操作,故在此记录。
max函数
max函数机制和min函数机制是一样的,这里只介绍max函数。
#max函数语法
max(iterable, *[, key, default])
max(arg1, arg2, *args[, key])
根据上面语法,max函数的参数有两种传递方式:
1.传递1个或多个同类型可迭代对象;
2.传递多个字符串或数字。
max函数使用
普通用法
print(max(-1,1,2,9)) #结果为9
print(max([5,6,7,10])) #结果为10
print(max('abcfgh')) #结果为h
key值探索
求list中平方最大的值
data = [-9, -8, -7, 1, 3, 6]
result = max(data, key=lambda x: x*x)
print(result) #结果为-9,注意返回的是x,不是对x操作后的值
对字典dict操作(根据最大的value值返回其对应的key)
data = {'a':1,'b':7,'c':12,'d':10,'e':12,'f':3}
result_max = max(data,key=lambda x:data[x])
print(result_max) #结果为c
#print(max(data,key=data.get)) #效果同上面一样
在上面的例子中,max函数第一个参数是可迭代内容dict,第二个参数key为函数。其过程为max进行for i in 遍历迭代器,将迭代器的每一个返回值当做参数传给key=func中的函数func,之后将处理后的结果进行比较大小;本例对data[x](value值)进行大小比较,返回的是x(key值)。
需要注意的是,默认情况下,dict迭代的是key。
但是在上面的例子中,我们会发现,'c’和’e’对应的value都是12,但只返回了一个key,如果要返回多个key,如下:
data = {'a':1,'b':7,'c':12,'d':10,'e':12,'f':3}
keys = []
for key, value in data.items():
if value == max(data.values()):
keys.append(key)
print(keys) #结果为['c','e']
参考
https://blog.csdn.net/sinat_38068807/article/details/86021686
https://www.zky.name/article/51.html
https://blog.csdn.net/weixin_41788255/article/details/79634142