Python 中的 get() 和 .get 有什么区别?

问题描述

我在一个程序中有这两行代码

res = Counter(test_str)
res = max(res,key=res.get)

但是,我似乎无法理解 key=res.get。我知道它按值对字典 (res) 的键进行排序,但我认为 get() 方法需要一个强制性的“键”参数?怎么可能只是.get而不是.get(key=)

解决方法

max 函数中,您传入的值进行比较并返回最高值。例如,这个程序返回这个列表中最大的整数:

print(max([1,2,3,4]))

但是,您也可以将函数传递到 keymax 参数中,该参数应该是一个函数或 lambda,可以作用于可迭代列表中的值并返回一个可以正确返回的值比较的。例如,如果项目在列表中,Counter(stuff).get 方法将返回一个项目在列表中出现的次数的整数。您可以将方法而不是方法调用传递给 max 函数,max 函数将比较每个单独项目在可迭代列表中出现的次数。例如:

c = Counter('hello,world!')
print(max(c,key=c.get))

上面的例子将打印字符串中最常见的字符。