首页 > 解决方案 > 在以列表为值的字典中查找键(Python)

问题描述

我有一本形式为:

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

有没有更高效、更“优雅”的方式?

标签: pythonpython-3.x

解决方案


您可以key在中使用自定义函数min

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

输出:

'b'

推荐阅读