在以列表作为值的字典中查找键(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