在以列表作为值的字典中查找键(Python)

在以列表作为值的字典中查找键(Python),python,python-3.x,Python,Python 3.x,我有一本字典,形式如下: my_dict = { "a" : ["Hey", 3] , "b" : ["Hello, 2], "c" : ["Heya", 8] } (每个列表的格式和“大小”都相同)。我想找到每个列表第二列的最小值的键。在这个例子中,基于整数值,所以我得到的键是“b”。我试着用lambda函数将其作为列表理解来编写,但无法使其工作,因此我最终得出以下结论: min =

我有一本字典,形式如下:

my_dict = { "a" : ["Hey", 3] , "b" : ["Hello, 2], "c" : ["Heya", 8] }
(每个列表的格式和“大小”都相同)。我想找到每个列表第二列的最小值的键。在这个例子中,基于整数值,所以我得到的键是“b”。我试着用lambda函数将其作为列表理解来编写,但无法使其工作,因此我最终得出以下结论:

min = 60  # with 60 being a logical maximum value
for key in my_dict:
    if my_dict[key][1] < min:
        min = wordDict[key][1]
        min_key = key
min_key
min=60#其中60为逻辑最大值
对于my_dict中的键:
如果我的指令[key][1]

有没有更高效和“优雅”的方法?

您可以在
min
中使用自定义
功能:

my_dict = { "a":["Hey", 3] , "b":["Hello", 2], "c":["Heya", 8] }
r = min(my_dict, key=lambda x:my_dict[x][-1])
输出:

'b'

不使用
min
函数,只需
循环即可。迭代字典并不断检查最小值和相应的键

import sys
my_dict = { "a" : ["Hey", 3] , "b" : ["Hello", 2], "c" : ["Heya", 8] }# your code goes here
 
min_val = sys.maxsize
min_val_key = None
 
for i, v in my_dict.items():
    if min_val>v[1]:
        min_val = v[1]
        min_val_key = i
 
print(f"min value is {min_val} and key is {min_val_key}")
输出

min value is 2 and key is b