在 Python 中查找字典值为列表的键

3

我有一个字典,格式如下:

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

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

2个回答

3
你可以在min中使用自定义的key函数:
my_dict = { "a":["Hey", 3] , "b":["Hello", 2], "c":["Heya", 8] }
r = min(my_dict, key=lambda x:my_dict[x][-1])

输出:

'b'

1
不使用 min 函数,只使用 for 循环。遍历字典并持续检查最小值和相应的键。
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接