根据值在多维dict中查找键

sep*_*ram 1 python dictionary

我有一个dicts的词典,如下所示:

{ 'a':{'foo': True,
       'bar': 1,
       'baz': 'abc'},
  'b':{'foo': True,
       'bar': 21,
       'baz': 'abc'},
  'c':{'foo': True,
       'bar': 3,
       'baz': 'cba'}}
Run Code Online (Sandbox Code Playgroud)

筛选dict的最有效方法是仅包含那些'baz'的子值为'abc'的键?所以在上面的例子中,它将返回一个看起来像的字典:

{ 'a':{'foo': True,
       'bar': 1,
       'baz': 'abc'},
  'b':{'foo': True,
       'bar': 21,
       'baz': 'abc'}}
Run Code Online (Sandbox Code Playgroud)

Kat*_*iel 7

{k: v for k, v in my_dict.items() if v['baz'] == 'abc'}
Run Code Online (Sandbox Code Playgroud)

  • 对于python 2,`dict((k,v)代表k,v代表my_dict.items()如果v ['baz'] =='abc') (3认同)