Python 为什么这个min()调用适用于字典
我想在字典里找到最小元素的键Python 为什么这个min()调用适用于字典,python,Python,我想在字典里找到最小元素的键 dictionary={'a':5'b':7'c':8} 我应该拿a作为钥匙 我找到了这段代码,但我不确定它是如何工作的 最小值(d)的定义键: 打印(最小(d,key=d.get)) 我对key=d.get的意思感到困惑,而我假设min(d,…)部分表示它得到了字典中的最小元素。这里的“key”一词有点过载。传递到min的键,即d.get,是一个可调用键,用于在比较之前转换值。内置函数排序也有一个类似的键参数 该“键”与指代词典的键/值时使用的“键”一词无关
dictionary={'a':5'b':7'c':8}
我应该拿a作为钥匙
我找到了这段代码,但我不确定它是如何工作的
最小值(d)的定义键:
打印(最小(d,key=d.get))
我对key=d.get
的意思感到困惑,而我假设min(d,…)
部分表示它得到了字典中的最小元素。这里的“key”一词有点过载。传递到min
的键,即d.get
,是一个可调用键,用于在比较之前转换值。内置函数排序也有一个类似的键
参数
该“键”与指代词典的键/值时使用的“键”一词无关
因此,代码通过迭代在字典中查找
k
,其中d.get(k)
最小。来自以下文档:
最小值(arg1,arg2,*args[键]):
返回iterable中的最小项或两个或多个参数中的最小项。
如果提供了一个位置参数,则该参数应为iterable。返回iterable中最小的项。如果提供了两个或多个位置参数,则返回最小的位置参数
有两个可选的纯关键字参数。键参数指定一个单参数排序函数,类似于用于list.sort()的函数。如果提供的iterable为空,则默认参数指定要返回的对象。如果iterable为空且未提供默认值,则会引发ValueError
重要的是要理解min
通过迭代参数进行操作,并且(不指定键)返回“最低”排序值。与等操作符进行比较。当您传入一个可调用的as键时,各个元素将用作此函数的参数
为了更详细地分析这个问题,当您调用min(d,key=d.get)
:
最低值=无
最低结果=无
d项:
如果最低值为无或d.get(项目)<最低值:
最低值=d.get(item)#这些是我们正在比较的元素
最低结果=项目,但这是我们“返回”的元素
print(f“最小值(可调用键的结果)为{lowest_val}”)
打印(f“与最小值相对应的最小项为“{lowest_result}”)
请注意,我们不会比较每个项
,但当项
用作参数时,我们会比较可调用键的结果