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

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]