У меня есть словарь словаря следующим образом:Как сплющивающиеся вложенную Dict и исключающие дубликаты ключей
lst1 = {1: {"a": "x","b": "y"}, 2: {"b": "y", "c": "z"}}
Я хочу, чтобы сделать плоский Dict из него. Любые дублирующиеся ключи должны быть удалены, так что только ключи, уникальные для одного из вложенных dicts, присутствуют в сплющенном dict. ДИКТ выше должно стать:
{"a": "x", "c": "z"}
простой код будет:
for key, value in lst1.iteritems():
for key1, value1 in value.iteritems():
if key1 <> "b":
lst2[key1]=value1
Я попробовал некоторые из предыдущих ответов here, here и here, но не мог заставить его работать правильно.
Ниже код возвращает ошибку: значение не определено
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'}
Как я могу сгладить структуру правильно, как я Вы описали?
Это было бы просто! Любой другой питонический способ кодирования? !!! – msc87
хорошо, вы правы. Мне просто интересно, можно ли это сделать, используя понимание dict. на первый взгляд я думал, что это возможно, но через несколько часов я сдался и отправил сюда ... никакой выгоды, во всяком случае !!! – msc87
проблема - второе понимание. он возвращает ошибку, когда вы используете .values, иначе второго понимания было бы достаточно, поскольку я уже извлек дублирование, пересекая значения двух dicts. – msc87