J'ai mes propres objets, disons pepperoni. J'ai une liste de bords à un de chaque pepperoni et une liste de pepperonis. Je construis ensuite un graphique en utilisant networkx. J'essaie de trouver le poids du chemin le plus court d'un pepperoni à l'autre. Cependant, je reçois une erreur comme suit, qui trace les choses internes de NetworkX comme suit:Utiliser networkx avec mon propre objet
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pizza.py", line 437, in shortestPath
cost = nx.shortest_path_length(a, spepp, tpepp, True)
File "/Library/Python/2.6/site-packages/networkx-1.3-py2.6.egg/networkx/algorithms/shortest_paths/generic.py", line 181, in shortest_path_length
paths=nx.dijkstra_path_length(G,source,target)
File "/Library/Python/2.6/site-packages/networkx-1.3-py2.6.egg/networkx/algorithms/shortest_paths/weighted.py", line 119, in dijkstra_path_length
(length,path)=single_source_dijkstra(G,source, weight = weight)
File "/Library/Python/2.6/site-packages/networkx-1.3-py2.6.egg/networkx/algorithms/shortest_paths/weighted.py", line 424, in single_source_dijkstra
edata=iter(G[v].items())
File "/Library/Python/2.6/site-packages/networkx-1.3-py2.6.egg/networkx/classes/graph.py", line 323, in __getitem__
return self.adj[n]
KeyError: <pizza.pepperoni object at 0x100ea2810>
Toute idée de ce qui est l'erreur, ou ce que je dois ajouter à ma classe de pizza afin de ne pas obtenir cette KeyError?
Éditer: J'ai mes bords correctement formatés. Je ne sais pas si les objets peuvent être gérés comme des nœuds.
Pour être honnête, je ne sais pas exactement quel était mon problème, mais j'ai triché avec l'objet et j'ai finalement réussi à le faire fonctionner correctement. Merci pour la réponse bien réfléchie. Ça m'a fait réfléchir :) – Trim