Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么这个min()调用适用于字典_Python - Fatal编程技术网

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}”)
请注意,我们不会比较每个
,但当
用作参数时,我们会比较可调用键的结果