如何使用字典理解排除嵌套字典中的内部字典键?

how to exclude inner dictionary key inside a nested dictionary using a dict comprehension?

我有这本字典:

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}}

我想要 return 完全相同的字典,除了第一个外键 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}}

为什么我的解决方案不起作用,我如何使用听写理解来实现我的目标?

你必须嵌套理解

{outer_k: {inner_k: inner_v 
           for inner_k, inner_v in outer_v.items() if inner_k != 'version'} 
 for outer_k, outer_v in params.items()}

并将条件应用于内部 dict