python max函数中使用key

博客转移到个人站点:python max函数中使用key

代码:
a = dict(((1,3),(0,-1),(3,21)))
m = max(a, key=a.get)
为什么这返回与最大值对应的键?

字典“a”是python中的一个可迭代的结构。当您在a中循环使用x时,您将循环使用字典中的键。
在第二行中,max函数有两个参数:一个可迭代对象(a)和一个可选的“key”函数。 Key功能将用于评估a中最大的项目的值。


例子:

>>> a = dict(((1,3),(0,-1),(3,21)))
>>> for x in a:
...     print x #output the value of each item in our iteration
... 
0
1
3

请注意,只输出“键”。当我们通过这些键到“获得”

>>> a.get(0)
-1
>>> a.get(1)
3
>>> a.get(3)
21

我们得到每个键的值。现在看看最大功效。

>>> b=[2, 3, 5, 6, 4]
>>> max(b)
6
>>> def inverse(x):
...     return 1.0 / x
... 
>>> max(b, key=inverse)
2

如您所见,max(默认情况下)将在我们的可迭代列表中找到最大的数字。如果我们定义“反”函数,它将返回b中最大的项,其中inverse(item)是最大的。

结合这两个项目,我们看到max(a,key = a.get)将返回一个a.get(item)的值最大的项。即对应于最大值的键。

总结:

1、key后面是函数
2、max遍历dict的值,取最大
3、key后面的函数通过这个值去查找对应的键
4、不加key这个函数的话,默认遍历的是字典的key,最后输出最大的键


有图有真相~~~~
有图有真相
关注公众号,获取最新信息

在这里插入图片描述

阿布的进击

  • 19
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值