2016-09-16 2 views
1

Предположим, что у меня есть вложенное Dict как:вставить значение ключа пары в вложен Словаре без перезаписи после разделителя ключа, которые производят дубликат ключа

D={'Germany': {'1972-05-23': 'test1', '1969-12-27': 'test2'}, 
    'Morocco|Germany': {'1978-01-14':'test3'}} 

Я хочу, чтобы получить новый Dict как:

{'Germany': {'1972-05-23': 'test1', '1969-12-27': 'test2', '1978-01-14':'test3'} 
'Morocco': {'1978-01-14':'test3'}} 

что означает, что я должен обрабатывать возможно дубликат ключа после str.split(key), и это мой код:

D={'Germany': {'1972-05-23': 'test1', '1969-12-27': 'test2'}, 
    'Morocco|Germany': {'1978-01-14':'test3'}} 

new_dict={} 
for item in D: 
    for index in str.split(item,'|'): 
     new_dict[index]=D[item] 
print new_dict 

однако пара ключ-значение, генерируемое после операции расщепления перезаписывать оригинальные из них, которые приводят к:

{'Morocco': {'1978-01-14': 'test3'}, 'Germany': {'1978-01-14': 'test3'}} 

Интересно, как я могу изменить свой код, чтобы получить удовлетворительную Dict для дальнейшей обработки или любое лучшее решение для этого требования?

PS: Мой Python версии 2.7.12 с Anaconda 4.0.0 через IDE PyCharm

Любая помощь будет оценена, спасибо

ответ

2

вы можете использовать:

if not index in new_dict: new_dict[index] = {} 
new_dict[index].update(D[item]) 
+0

Спасибо, меня устраивает. – LancelotHolmes

Смежные вопросы