Python - Keyerror en grafos

 
Vista:

Keyerror en grafos

Publicado por Cristian (1 intervención) el 22/05/2020 11:17:51
CÓDIGO:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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: \n")
for key, lista in grafo.items():
	print(key)
	print(lista)
 
print()
os.system("pause")
 
visitados = []
cola = []
 
origen = input("Ingresa el nodo origen: ")
print("\nLista de recorrido en anchura\n")
#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")


El enunciado es realizar una busqueda en anchura de ese grafo, y recibo constantemente este error:

1
2
3
4
5
6
7
8
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

Por favor si alguien me ayuda se lo agradecería.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder