有条件的词典理解

spd*_*dub 3 python python-2.7 dictionary-comprehension

所以我想知道是否有人可以帮我解决这个问题.

让我们假设我有一本字典:

d = {1: {2: 3}, 4: 5}
Run Code Online (Sandbox Code Playgroud)

我想创建任何包含字典的字典:

wanted_result = {2: 3}
Run Code Online (Sandbox Code Playgroud)

我在想的是这个:

e = {inner_key: d[key][inner_key] for key in d.keys() for inner_key in d[key].keys() if isinstance(d[key], dict)}
Run Code Online (Sandbox Code Playgroud)

然而,这导致我得到一个错误,说int没有密钥,我知道,但我认为我的条件将排除我的例子中的说法4被包括在理解中.

geo*_*org 10

d = {1: {2: 3}, 4: 5, 6: {7: 8}}
s = {k: v for elem in d.values() if type(elem) is dict for k, v in elem.items()}
>> {2: 3, 7: 8}
Run Code Online (Sandbox Code Playgroud)