就是像这行代码
m = max(a, key=a.get)
get后面为什么没有括号?
本身语法就是这样。a是字典对象,max(a, key=a.get)中key=a.get将返回一个a.get(item)的值最大的项。即对应于最大值的键。
1、key后面是函数
2、max遍历dict的值,取最大
3、key后面的函数通过这个值去查找对应的键
4、不加key这个函数的话,默认遍历的是字典的key,最后输出最大的键
key=a.get,意思是将对象a的get函数(也叫方法)传给key参数,这是“引用一个函数”,如果函数后面加上括号,则是“调用一个函数”,函数将立即执行。有一个不太确切的例子:函数好比一把水果刀,苹果就是函数的参数,调用函数就相当于用水果刀给苹果削皮,调用一次削一个苹果。字典a相当于一筐苹果,key=a.get就是告诉max削皮的时候用get这把刀,但没有真的开始削皮。请仔细体会“引用一个函数”和“调用一个函数”的区别。