python笔记--max函数操作

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值