从字典列表创建嵌套字典

use*_*093 2 python

我有字典字典像波纹管(解析lspci信息)

原始字典:

d={'host':{'v':'v1','d':'d1','sv':'sv1','sd':'sd1'},
    'ether':{'v':'v2','d':'d2','sv':'sv2','sd':'sd2'}}
Run Code Online (Sandbox Code Playgroud)

字典用原始字典检查:

to_check={'host':['v','d'],'ether':['v','d','sv']}
Run Code Online (Sandbox Code Playgroud)

我需要像这样的输出

output_dict={'host':{'v':'v1','d':'d1'},'ether':{'v':'v2','d':'d2','sv':'sv2'}}
Run Code Online (Sandbox Code Playgroud)

我如何实现使用dict理解?有另一种简单的方法

the*_*eye 5

print {k:{key:d[k][key] for key in to_check[k] if key in d[k]} for k in to_check}
Run Code Online (Sandbox Code Playgroud)

产量

{'ether': {'d': 'd2', 'v': 'v2', 'sv': 'sv2'}, 'host': {'d': 'd1', 'v': 'v1'}}
Run Code Online (Sandbox Code Playgroud)