Buenos días, tengo un problema de key error al realizar una Busqueda en anchura en grafos, pues me da un keyerror, os agradecería si me piudierais ayudar, gracias.
Error:
Lista de recorrido en anchura
Vertice actual -> 2
Vertice actual -> 1
Traceback (most recent call last):
File "c:/Users/K/OneDrive/Escritorio/Ejercicios/Banchura.py", line 50, in <module>
for key, lista in grafo[actual]:
Keyerror: 1
Código:
import os
grafo = {'2': [(1, 10), (3, 7)],
'1': [(2, 10), (3, 15), (6, 5)],
'3': [(1, 15), (2, 7), (4, 7), (6, 10)],
'6': [(1, 5), (3, 10), (4, 5), (5, 13)],
'4': [(3, 7), (5, 7), (6, 5)],
'5': [(4, 7), (6, 13)]
}
#MUESTRA EL GRAFO ANTES DEL RECORRIDO
print("Muestra el grafo antes del recorrido:
")
for key, lista in grafo.items():
print(key)
print(lista)
print()
os.system("pause")
visitados = []
cola = []
origen = input("Ingresa el nodo origen: ")
print("
Lista de recorrido en anchura
")
#Paso 1: SE COLOCA EL VÉRTICE ORIGEN EN UNA COLA
cola.append(origen)
#Paso 2: MIENTRAS LA COLA NO ESTE VACÍA
while cola:
#paso 3: DESENCOLAR UN VÉRTICE, ESTE SERÁ AHORA EL VÉRTICE ACTUAL
actual = cola.pop(0)
#paso 4: SI EL VÉRTICE ACTUAL NO HA SIDO VISITADO
if actual not in visitados:
#paso 5: PROCESAR (IMPRIMIR) EL VÉRTICE ACTUAL
print("Vertice actual -> ", actual)
#paso 6: COLOCAR VÉRTICE ACTUAL EN LA LISTA DE VISITADOS
visitados.append(actual)
#paso 7: PARA CADA VÉRTICE QUE EL VÉRTICE ACTUAL TIENE COMO DESTINO,
# Y QUE NO HA SIDO VISITADO:
# ENCOLAR EL VERTICE
for key, lista in grafo[actual]:
if key not in visitados:
cola.append(key)
print()
os.system("pause")
Error:
Lista de recorrido en anchura
Vertice actual -> 2
Vertice actual -> 1
Traceback (most recent call last):
File "c:/Users/K/OneDrive/Escritorio/Ejercicios/Banchura.py", line 50, in <module>
for key, lista in grafo[actual]:
Keyerror: 1