python - 如何在嵌套字典中找到最小值的键?
问题描述
我有以下代码生成嵌套字典。
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
的功能?
解决方案
您可以反转键和值,然后获取具有最小值的键:
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)
推荐阅读
- excel - 通过用户表单在某行中使用 VBA 代码填充数据
- git - Github 所有的拉取请求都转到上游而不是当前的分叉
- javascript - D3 饼图仅以一种颜色呈现
- python - 为什么我不断收到此“没有名为 utils 的模块”错误?
- node.js - MongoDB过滤器聚合
- regex - mod_rewrite 在 URL 中保留方括号
- docker - 为什么我的 cron(tinycron) 有时会执行两次命令?
- javascript - Totalprice 不等于正确的值 JQuery
- python - 如何使 Django 搜索包含大写和小写的工作?
- java - 将多维数组添加到 ArrayList