我简直无法绕过key = dictionary.get为了产生结果所做的事情。
以这个简单的字典为例:
dictionary = {'a':1, 'b':2, 'c':3}
例如,我知道dictionary.get('c')将返回3。但是,使用不带任何参数的dictionary.get,仅返回“ dict对象的内置方法get”。为什么在max(dictionary,key = dictionary.get)中使用此方法时返回的结果有所不同?
dictionary = {'a':1, 'b':2, 'c':3}
print(max(dictionary, key=dictionary.get)) # 'c'
我已经阅读了文档,但听不懂...谢谢。
答案 0 :(得分:1)
max()
函数用于从迭代器中找到最大项。在您的情况下,可迭代值为dictionary
,这意味着字典中的 keys (如您在
for k in dictionary:
print(k)
max()
也可以采用可选的key
可调用参数,其中,最大值由可调用函数的返回值确定。在您的情况下,如果我们从迭代器中找到k
,则可以通过dictionary.get(k)
确定最大值。
如果用程序代码编写,则为:
max_output = None
max_value = ? # some correct initial value
for k in dictionary:
if dictionary.get(k) > max_value:
max_value = dictionary.get(k)
max_output = k
return max_output
因此,您的一行意味着从dictionary
中找到最大密钥,该最大密钥由其中的值定义。