Найти ключи в многомерном дикте на основе значения

1

У меня есть диктофон, который выглядит следующим образом:

{ 'a':{'foo': True,
       'bar': 1,
       'baz': 'abc'},
  'b':{'foo': True,
       'bar': 21,
       'baz': 'abc'},
  'c':{'foo': True,
       'bar': 3,
       'baz': 'cba'}}

Каков наиболее эффективный способ фильтрации дикта, чтобы включать только те ключи, чьи под-значения для "baz" являются "abc"? Таким образом, в приведенном выше примере он вернет диктофон, который выглядит так:

{ 'a':{'foo': True,
       'bar': 1,
       'baz': 'abc'},
  'b':{'foo': True,
       'bar': 21,
       'baz': 'abc'}}
Теги:
dictionary

1 ответ

7
Лучший ответ
{k: v for k, v in my_dict.items() if v['baz'] == 'abc'}
  • 1
    +1 не мог бы сказать это лучше
  • 3
    для python 2 dict( (k,v) for k, v in my_dict.items() if v['baz'] == 'abc' )
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню