は、私がdictsの辞書を持っていると言う:リスト内包表記を使ってdictsのdictからすべてのメンバーdictキーのリストを作成できますか?
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', ]
。 これは1ライナーリストの理解でこれを達成する方法はありますか?メンバーdictsのキーは常に一意です。ここで
ところで、あなたの '+ =リスト(..)'本当にあるべき '.extend(...)' –
と '.items()'本当に必要ではありません値; '.values()'で十分です。 – SethMMorton
重複を含むすべてのキーのリストが本当に必要ですか?そうでない場合は、ettananyの答えに基づいて 'set(itertools.chain(* foo.values()))'がより適切かもしれません。 – Duncan