Мне тяжело пытаться упорядочить словарь согласно следующему порядку заданное число на входе, которое является 5
, тогда найдите key=5
в словаре положите его первым, а затем его первым значением 4
и выполните поиск по key=4
в словаре и поставить его значение в качестве второго, а затем второе значение 5
которое 3
и поиск key=3
в словаре и поставить его значение в качестве третьегоКак я могу упорядочить словарь?
значения будет один или два целых числа
Я работаю в рисование двоичного дерева, поэтому будет проще, если корневой узел (родительский), который равен 5 вновь стать первым, а затем его дети, дети и т.д. следующий
Я пытался организовать его с помощью OrderedDict
, но я не мог найти вместе с ним
Может кто-то мне помочь, пожалуйста?
Вход:
{8: [9], 3: [6, 8], 4: [2, 1], 5: [4, 3], 6: [0, 7]}
Выход:
{5: [4, 3], 4: [2, 1], 3: [6, 8], 6: [0, 7], 8: [9]}
Обновленный код:
def dfs(cur, prev, edges, res):
for next in edges[cur]:
if next == prev: continue
res.setdefault(cur, []).append(next)
dfs(next, cur, edges, res)
def construct_tree(edges, root):
d = {}
x = []
for edge in edges:
u, v = edge
d.setdefault(u, []).append(v)
d.setdefault(v, []).append(u)
res = {}
dfs(root, -1, d, res)
return res
if __name__ == '__main__':
root_node = 5
edges = [[2, 4], [4, 1], [0, 6], [7, 6], [8, 9], [4, 5], [6, 3], [3, 5], [3, 8]]
print((construct_tree(edges, root_node)))
Где находится вход, то есть порядок ключей? Буквально из 'input' или' raw_input'? – timgeb
Я хочу расположить его в соответствии с корневым узлом (ключом) в словаре, сначала сначала введите корневой узел = 5, а затем значения корневого узла и найдите его в ключах словаря и поместите следующий – Joe
и снова, пока end, и если номер значения не существует в ключе словаря continue – Joe