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

时间:2016-04-08 04:10:12

标签: python max defaultdict

我已阅读这些帖子123,但我仍然无法弄清楚以下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是一种方法。为什么它不使用括号?它会返回什么样的数据?

1 个答案:

答案 0 :(得分:1)

max接受关键字参数 - &#34;键&#34;功能。 e.g:

max(iterable, key=some_function)

我(你猜测)是你如何使用它(而不是max(iterable, function)

&#34; key&#34;函数将被调用迭代中的每个元素以及&#34; key&#34;的结果。函数用于比较元素。

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

d是您的默认用户。 d.get(key)返回与该键关联的值 - 并且传递给它的内容是d中的键。因此,您需要选择具有最大值的密钥。