首页 > 解决方案 > 如何使用字典理解排除嵌套字典中的内部字典键?

问题描述

我有这本字典:

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

我想返回完全相同的字典,不包括version第一个外部键中的内部 k 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 理解来实现我的目标?

标签: pythonpython-3.xloopsdictionarydictionary-comprehension

解决方案


你必须嵌套理解

{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


推荐阅读