【发布时间】:2021-09-18 21:49:27
【问题描述】:
我有这本词典:
params = {'H': {'amt_thold_high': 0.0, 'amt_thold_restricted': 0.0, 'num_par': 2.0, 'version': 2.1},
'M': {'amt_thold_high': 0.0, 'amt_thold_restricted': 0.0, 'num_par': 2.0},
'L': {'amt_thold_high': 0.0, 'amt_thold_restricted': 0.0, 'num_par': 2.0}}
我想从第一个外部键 H 中返回完全相同的字典,不包括内部 k version。
这是我到目前为止所带来的:
{outer_k:outer_v for outer_k,outer_v in params.items() for inner_k, inner_v in outer_v.items() if inner_k != 'version'}
这是我得到的结果:
{'H': {'amt_thold_high': 0.0,
'amt_thold_restricted': 0.0,
'num_par': 2.0,
'version': 2.1},
'M': {'amt_thold_high': 0.0, 'amt_thold_restricted': 0.0, 'num_par': 2.0},
'L': {'amt_thold_high': 0.0, 'amt_thold_restricted': 0.0, 'num_par': 2.0}}
为什么我的解决方案不起作用,我如何使用 dict 理解来实现我的目标?
【问题讨论】:
-
也许更快:for k, v in params.items(): if v.get('version'): v.pop('version')
标签: python python-3.x loops dictionary dictionary-comprehension