我已阅读这些帖子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是一种方法。为什么它不使用括号?它会返回什么样的数据?
答案 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
中的键。因此,您需要选择具有最大值的密钥。