2014-09-04 4 views
-7

У меня есть код, который пытается вставить словарь в другой словарь. Код показан ниже. Проблема в том, что словарь «СС» переписывает каждый раз через цикл. Есть ли способ предотвратить это? Я попытался добавить список, а затем написать словарь без везения. Узлы, CoordComboSort и Xcoord - это все другие словари в коде.Обновление словаря в Python

CoordComboSort выглядит примерно так:

{0:[(1, 4, 5), (1, 7, 4)], .001:[(4, 6, 8), (3, 8, 6)]} 

Вершины выглядит примерно так:

{'time':[ 'A', 'B']} 

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

{'A': 0: [(1, 4, 5)], .001: [(4, 6, 8)], 'B': 0: [(1, 7, 4)], .001: [(3, 8, 6)]} 

CC = {} 

for key in CoordComboSort.keys(): 
    for step in range(len(Xcoord[0])): 
     CC[Nodes['time'][step]] = CoordComboSort[key][step] 

выше код производит словарь, который выглядит так:

{'A': [(4, 6, 8)], 'B': [(3, 8, 6)]} 
+0

Вы знаете, что каждый ключ в Словаре должен быть уникальным? Похоже, что ключ 'Nodes ['time'] [step]' производит один и тот же ключ и поэтому перезаписывает последний ключ: value – dawg

+2

Что такое 'Nodes'? 'CoordComboSort'? 'Xcoord'? Какой результат вы ожидаете, и что вы получаете вместо этого? – jonrsharpe

+2

Что вы имеете в виду, переписывая себя? Постарайтесь предоставить ввод, который может быть запущен другими членами SO, которые будут воспроизводить поведение, которое вы получаете. – Korem

ответ

0

Не уверен, что правильно ли я получил вашу цель, но на основе приведенных ниже примеров может работать.

CC = {} 

for step in range(len(Nodes['time'])): 
    for key in CoordComboSort.keys(): 
     CC[Nodes['time'][step]] = {key : CoordComboSort[key][step] for key in CoordComboSort.keys()} 

Для вашего входа, выход будет выглядеть следующим образом:

{'A': {0: (1, 4, 5), 0.001: (4, 6, 8)}, 'B': {0: (1, 7, 4), 0.001: (3, 8, 6)}} 
+0

Это помогло тонне! Извините за то, что я не уверен в этом вопросе. Благодаря! –

+0

Добро пожаловать. – iuysal

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