Глубина первого поиска в python Ошибка: ошибка ключа 7

введите описание изображения здесь

Я написал следующую программу python для выполнения DFS для данного графика, но после выполнения он выдает ошибку: Key Error 7 . Что не так в моем коде?

output=[] graph = { 9:[8,7,6], 8:[5,4], 6:[3,2], 5:[1,0] } def dfs(graph,root): stack=[] visited=set() stack.append(root) output.append(str(root)) visited.add(root) while not(stack==[]): for item in graph[root]: if item not in visited: stack.append(item) visited.add(item) output.append(str(item)) if set(graph[item]).union(visited)==visited: stack.pop(-1) root=stack[len(stack)-1] continue root=item dfs(graph,9) print(" ".join(output)) 

Тем не менее проблема не решена после добавления предложений, данных @amit, я написал следующий код и дает неверный вывод, пожалуйста, помогите!

 output=[] graph = { 1:[2,3], 2:[4,5], 3:[6,7], 4:[], 5:[], 6:[], 7:[] } def dfs(graph,root): stack=[] visited=set() stack.append(root) output.append(str(root)) visited.add(root) while not(stack==[]): for item in graph[root]: if item not in visited: stack.append(item) visited.add(item) output.append(str(item)) if set(graph[item]).union(visited)==visited: stack.pop(-1) if not(stack==[]): root=stack[len(stack)-1] else: break continue root=item dfs(graph,1) print(" ".join(output)) 

2 Solutions collect form web for “Глубина первого поиска в python Ошибка: ошибка ключа 7”

В вашей реализации графа нет узлов с d_out(v)=0 .

Итак, в этой строке:

  if set(graph[item]).union(visited)==visited: 

Когда вы помещаете 7 (или 4) в качестве item , вы пытаетесь получить доступ к graph[7] – но такого ключа нет.

Вы можете преодолеть это путем изменения реализации графика, чтобы иметь key:[] для всех ключей (включая те, у которых нет внешних границ), или путем добавления проверки к условию, чтобы проверить, находится ли item в graph прежде чем пытаться получить к нему доступ ,

Вы не определяли ребра, идущие от вершины номер 7.

  • Как уменьшить палитру изображений до определенных цветов?
  • Неоднозначное значение истины с логической логикой
  • Как сгенерировать все перестановки списка в Python
  • Проверьте, является ли число рациональным в Python
  • Минимаксный алгоритм Блэкджека
  • Нечеткая группа, группировка похожих слов
  • Создание подписок из списка элементов списка
  • Как я могу чередовать или создавать уникальные перестановки из двух строк (без рекурсии)
  • Python - лучший язык программирования в мире.