python-3.x - 比较 Python 3 中嵌套字典的值
问题描述
我有一些代码使用嵌套字典来保存线性回归的结果。该程序对多组数据(“目标”)运行回归,并将每个目标的回归变量存储为字典,这些字典包含在另一个字典中,使用目标名称作为键,值是字典保存变量。它是这样初始化的(注意这self.targets
只是不同目标的列表):
self.results = {}
for keys in self.targets:
self.results[keys] = {
'lod': '', 'p': '', 'm': '', 'b': '', 'xr': ''}
在另一个在 for 循环中调用的方法中,该目标的字典中的值被填充:
for tar in targets:
...some calculations to produce the values...
self.results[tar].update(
'lod': lod, 'p': p, 'm': m, 'b': b, 'xr': xr)
稍后,我想在一个图上绘制不同的回归。为此,我想xr
从子词典中找到最大值(xr
是绘制每个回归所需的右边界)。
我尝试访问所有xr
值,例如self.results[:]['xr']
. 那没有用,所以我xr
在 for 循环中提取了值:
xrs = []
for tar in self.targets:
xrs.append(self.results[tar]['xr'])
这样就完成了工作,因为我可以max(xrs)
找到最大的价值。不过,我想知道是否有更直接的方法来提取键的最大值'xr'
,而不必创建一个单独的列表作为中间人。
解决方案
生成器理解可能会有所帮助:
data = {
"a" : {'lod': '', 'p': '', 'm': '', 'b': '', 'xr': 0},
"b" : {'lod': '', 'p': '', 'm': '', 'b': '', 'xr': 1}
}
max_xr = max(value["xr"] for value in data.values())
print(max_xr)
这应该给你1
我的想法。
推荐阅读
- sql - 为什么我的“CREATE INDEX CONCURRENTLY ..”命令被“SELECT FROM”查询阻止?(Postgres 9.6)
- ios - 从远程 URL 共享全尺寸图像
- angular - 无法读取 null Angular 测试的属性“textContent”
- java - 正则表达式提取多个单词组合之间的数字
- gcloud - Gcloud 崩溃(ValueError):标头值无效
- wordpress - 剥离(删除)WordPress存档的分页基础(pagination_base)(url中的“page”slug)
- scip - SCIP 中的常规函数是否可以在 PySCIPOpt 中调用?
- c# - Stripe / Stripe.net invoice.payment_succeeded 不包括订阅详细信息
- matlab - Matlab 错误:位置 1 的索引超出数组范围
- odoo-12 - 如何获取q-web报告odoo 12中除键以外的选择字段的值?