Скажем, у меня есть Dict из dicts:Можно ли создать список всех ключей-членов из dicts dicts, используя понимание списка?
foo = {
'category': {
'key1': 'bar',
'key2': 'bar',
'key3': 'bar',
},
'category2': {
'key4': 'bar',
'key5': 'bar',
},
}
Чтобы получить единый список всех ключей в странах-dicts, у меня есть функция следующим образом:
def _make_list():
baz = list()
for key,val in foo.items():
baz += list(val.keys())
return baz
Сформированный список выглядит : ['key1', 'key2', 'key3', 'key4', 'key5', ]
.
Это достаточно просто, и это работает, но мне интересно: есть ли способ сделать это с пониманием списка с одним слоем? Ключи участников dicts всегда будут уникальными.
Btw ваш '+ = лист (..)' должен быть действительно '.extend (...)' ' –
И .items()' не является необходимым, если вы только с помощью значения; '.values ()' достаточно. – SethMMorton
Вам действительно нужен список всех ключей, включая дубликаты? Если не набор может быть более уместным: 'set (itertools.chain (* foo.values ()))' на основе ответа ettanany. – Duncan