博客转移到个人站点: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,最后输出最大的键
有图有真相~~~~
关注公众号,获取最新信息
阿布的进击