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

evrscar2  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(414)

我有这本字典:

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

我想返回完全相同的字典,不包括内部的k version 从第一外键开始 H .
这就是我到目前为止的收获:

{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理解来实现我的目标?
提前谢谢

5kgi1eie

5kgi1eie1#

你必须把理解嵌套起来

{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 .

相关问题