为了账号安全,请及时绑定邮箱和手机立即绑定

如何在嵌套字典中找到最小值的键?

如何在嵌套字典中找到最小值的键?

慕斯王 2021-05-12 17:29:53
我有以下代码生成嵌套字典。import randomimport numpy as npdict1 = {}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])result1如何开发这种find_min功能?
查看完整描述

3 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

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


 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}

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


编辑

如注释中所示,可以简单地key在min函数内使用:


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


查看完整回答
反对 回复 2021-05-25
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

import random


def find_min(d, fixed_key):

    # Given a dictionary of dictionaries d, and a fixed_key, get the dictionary associated with the key

    myDict = d[fixed_key]

    # treat the dictionary keys as a list

    # get the index of the minimum value, then use it to get the key

    sub_key = list(myDict.keys())[myDict.values().index(min(myDict.values()))]

    return sub_key


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


print dict1

print find_min(dict1, 0)


查看完整回答
反对 回复 2021-05-25
  • 3 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信