首页 > 解决方案 > 如何在嵌套字典中找到最小值的键?

问题描述

我有以下代码生成嵌套字典。

import random
import numpy as np

dict1 = {}
for i in range(0,2):
    dict2 = {}
    for j in range(0,3):
        dict2[j] = random.randint(1,10)
    dict1[i] = dict2

例如它可以生成以下内容dict1

{0: {0: 7, 1: 2, 2: 5}, 1: {0: 3, 1: 10, 2: 10}}

我想找到固定键的最小值的子键。例如,对于固定键0,嵌套字典值中的最小值是2指 w 子键1。因此结果应该是1

result=find_min(dict1[0])
result
1

我怎样才能开发这样find_min的功能?

标签: pythonpython-3.xnumpy

解决方案


您可以反转键和值,然后获取具有最小值的键:

 a = {0: {0: 7, 1: 2, 2: 5}, 1: {0: 3, 1: 10, 2: 10}}
 dict(zip(a[0].values(),a[0].keys())).get(min(a[0].values()))

在这里,我们创建一个新字典,其键和值与原始字典相反。例如

dict(zip(a[0].values(),a[0].keys()))
Out[1575]: {7: 0, 2: 1, 5: 2}

然后从这里,我们得到原始字典中的最小值,并将其用作这个反向字典中的键

编辑

如评论中所示,可以简单地keymin函数内使用:

   min(a[0],key = a[0].get)

推荐阅读