collections.defaultdict.get 如何在 max 语句的关键参数中工作--- python

how collections.defaultdict.get work in max statement's key paramter--- python

我已经阅读了这些 post 1, 2, 3,但我仍然无法理解以下 python 代码:

>>> s = 'mississippi'
>>> d = defaultdict(int)
>>> for k in s:
...     d[k] += 1
...
>>> lis = ['m', 'i', 's', 'p']
>>> max(lis, key=d.get)
'i'

我知道一个字母出现的次数存储在d中。当我输入:

>>> d.get
<built-in method get of collections.defaultdict object at 0x7f506ed8d710>

说get是一个方法。为什么不使用括号?它形成了什么样的数据returns?

max 接受一个关键字参数——一个 "key" 函数。例如:

max(iterable, key=some_function)

你是怎么使用它的(我猜)(而不是 max(iterable, function)

将为可迭代对象中的每个元素调用"key"函数,"key"函数的结果用于比较元素。

因此,在您的情况下,将返回 d.get returns 最大值的元素。

d 是您的默认指令。 d.get(key) returns 与该键关联的值——以及传递给它的东西是 d 中的键。所以你选择了具有最大值的键。