首页 > 解决方案 > 根据列表中的最小值获取键值对

问题描述

我试过用谷歌搜索这个,但找不到与这种情况类似的答案。我有以下格式的字典:

    my_dict={'key1': ['some_data', 'some_more_data',6.0], 'key2': ['junk', 'some_more_junk',7.0], 'key3': ['something_good', 'good',1.0]}

我将如何创建一个仅包含列表末尾数字最小的键值对的子字典?换句话说,我希望我的输出是:

    sub_dict={'key3': ['something_good','good',1.0]}        

请注意,最小值将始终位于列表的末尾,列表中的其他元素与键相关。

标签: pythonpython-3.xlistmin

解决方案


内置min函数具有key关键字参数。
所以你不需要排序

my_dict = {'key1': ['some_data', 'some_more_data', 6.0],
           'key2': ['junk', 'some_more_junk', 7.0],
           'key3': ['something_good', 'good', 1.0],
           'key4': ['test', 'test', 1.0]}

min_value = min(my_dict.values(), key=lambda x: x[-1])[-1]
new_dict = {k: v for k, v in my_dict.items() if v[-1] == min_value}
print(new_dict)

输出:

{'key3': ['something_good', 'good', 1.0], 'key4': ['test', 'test', 1.0]}

推荐阅读