猿问

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

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


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功能?


慕斯王
浏览 197回答 3
3回答

萧十郎

您可以反转键和值,然后获取具有最小值的键: 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)

犯罪嫌疑人X

import randomdef 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_keydict1 = {0: {0: 7, 1: 2, 2: 5}, 1: {0: 3, 1: 10, 2: 10}}print dict1print find_min(dict1, 0)
随时随地看视频慕课网APP

相关分类

Python
我要回答