繁体   English   中英

如何获取字典键列表中第二项的最低值?

[英]How to get the lowest value of second item in key list of dictionary?

假设我们有这样一个字典:

Dict={'2020-12-23_36.JPG': [2959, 4690],
 '2020-12-28_106.JPG': [2956, 4592],
 '2020-12-28_117.JPG': [2993, 4752],
 '2020-12-28_13.JPG': [2919, 4921],
 '2020-12-28_141.JPG': [2984, 4944]}

我们如何从中检索列表中第二项的最小值的键?:

import operator
min(Dict.items(), key=operator.itemgetter(1))[0]
"2020-12-28_13.JPG"

这是有道理的,因为“2020-12-28_13.JPG”确实在列表的第一项中具有最低值:2919

我尝试了以下但没有成功:

min(Dict.items(), key=operator.itemgetter(1))[1][1]
"4921"

它仅打印列表的第二项,但基于列表的第一项。

我也试过:

min(Dict.items(), key=operator.itemgetter(1))[1])[0]
"TypeError: 'operator.itemgetter' object is not subscriptable"

预期结果

min(Dict.items(), key=operator.itemgetter(1))[1][1]
'2020-12-28_106.JPG' #(because 4592 is the lowest value of the -1 in list)

这实际上可能非常简单。 sorted 基于任何可迭代对象的任何“键”进行排序。 在本例中,键是字典值中的第二项。

sorted(Dict, key = lambda x: Dict[x][1])[0]

你的代码有小错别字,比较一下:

你的线

min(Dict.items(), key=operator.itemgetter(1)[1])[0]

正确一个

min(Dict.items(), key=operator.itemgetter(1))[1][0]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM