次のような辞書の辞書があります。
lst1 = {1: {"a": "x","b": "y"}, 2: {"b": "y", "c": "z"}}
私はそれからフラットな辞書を作りたいです。ネストされた dict の 1 つに固有のキーのみがフラット化された dict に存在するように、重複するキーはすべて削除する必要があります。上記の辞書は次のようになります。
{"a": "x", "c": "z"}
簡単なコードは次のようになります。
for key, value in lst1.iteritems():
for key1, value1 in value.iteritems():
if key1 <> "b":
lst2[key1]=value1
ここ、ここ、ここで以前の回答をいくつか試しましたが、正しく機能しませんでした。
以下のコードはエラーを返します: 値が定義されていません
lst2 = {key1: value1 for key1, value1 in value for key, value in lst1.items()}
これです:
lst2 = dict((key1, value1) for key1, value1 in (value for key, value in lst1.items()))
戻り値:
{'a': 'b', 'c': 'b'}
説明したように、構造を正しく平坦化するにはどうすればよいですか?