如果我有一本字典,如下:
{
'key1':
{
'foo': 1233,
'bar': 1234,
'baz': 122
},
'key2':
{
'foo': 113,
'bar': 333
}
}
Run Code Online (Sandbox Code Playgroud)
如何返回具有以下结果的新字典
{
'key1':
{
'foo': 1233,
'bar': 1234
},
'key2':
{
'foo': 113,
'bar': 333
}
}
Run Code Online (Sandbox Code Playgroud)
我想要'key1'和'key2'的子词典(这是正确的术语?)具有相同的键
这应该可以做到:
>>> d = { 'key1': { 'foo': 1233, 'bar': 1234, 'baz': 122 }, 'key2': { 'foo': 113, 'bar': 333 } }
>>> keys = (x.keys() for x in d.itervalues())
>>> common_keys = set(next(keys)).intersection(*keys)
>>> {k : {k_: v[k_] for k_ in common_keys} for k, v in d.iteritems()}
{'key2': {'foo': 113, 'bar': 333},
'key1': {'foo': 1233, 'bar': 1234}}
Run Code Online (Sandbox Code Playgroud)