嵌套字典的子集

Ali*_*sro 1 python dictionary nested

nested = {'a':{'aa':1, 'bb':2}, 'b':{'aa':3, 'bb':4}}
Run Code Online (Sandbox Code Playgroud)

如何获取第二个键为“aa”result的子集:nested

result = {'a':{'aa':1}, 'b':{'aa':3}}
Run Code Online (Sandbox Code Playgroud)

我尝试了这个但没有成功:

result = {k1:{k2:nested[k1][k2]} for k1 in nested.keys() & k2 in ['aa']}
Run Code Online (Sandbox Code Playgroud)

先感谢您。

Psi*_*dom 5

您可以使用带有内部字典过滤器的嵌套字典理解(这将创建一个新字典而不是修改原始字典):

{k1: {k2: v2 for k2, v2 in v1.items() if k2 == 'aa'} for k1, v1 in nested.items()}
# {'a': {'aa': 1}, 'b': {'aa': 3}}
Run Code Online (Sandbox Code Playgroud)