【发布时间】:2020-08-21 12:45:44
【问题描述】:
我有一本字典,我想找到一种优雅而有效的方法来找到一个 key:value 对,其中字典中的值最小(如果存在很多,则为最小值之一)。除了明显的 for 循环方法外,我还在 StackOverflow 中找到了其他几种方法:
第一种方法:
temporary = [x for x in myDictionary.items()] # list is created just for using sorted()
foundKey, minimalValue = sorted(temporary, key=lambda x: x[1]) [0]
第二种方法:
minimalValue = min(myDictionary.values())
foundKey = min(myDictionary, key=myDictionary.get)
对于 myDictionary 的数千个项目,第二个运行得稍微快一些,但是......我找不到 key=myDictionary.get 构造的解释。不是可以将两分钟合二为一吗foundKey, minimalValue = ...?
【问题讨论】:
-
为什么不使用
foundKey, minimalValue = min(myDictionary.items(), key = lambda x:x[1])之类的东西? -
在我编辑我的问题并找到你的答案的同时,对我的建议很好!无论如何, 'key=myDictionary.get' 中的 'get' 是什么?我只知道 'get()' 方法。
-
@mja。您仍然可以考虑通过单击旁边的复选标记来选择我的答案,或者发布您自己的答案并选择它。无论哪种方式,选择答案都会将您的问题从未回答队列中删除。
-
@mja。我在回答中添加了一些时间。看起来像
__getitem__,因为您的密钥是最快的方法。享受吧。
标签: python python-3.x dictionary min