Bonjour, j'ai le code suivant qui fait une liste d'adjacence pour un graphe, qui imprime le code très bien, sauf lors de l'ajout de nouvelles valeurs à va et vb, les anciennes clés sont écrasées. Si je trouve que le sommet 0 est adjacent à 1 et 2, je veux ajouter les deux, mais à la place 1 est écrasé par 2. Aussi j'ai essayé d'utiliser d'autres méthodes d'insertion et j'ai l'erreur 0, qui est aucune clé dans le dictionnaire cet index:Python Dict, insertion dynamique
def caminhografo(grafo, va, vb):
vat = vertex
i = 0
a = 0
z = 0
va = int(va)
vb = int(vb)
x = len(grafo.node)
if va < vb:
for va in range (vb+1):
a = 0
x = len(grafo.node)
for a in range (x):
if [int(va),int(a)] in grafo.node:
vat.adj[va] = a
if va > vb:
while vb > va:
a = 0
x = len(grafo.node)
for a in range (x):
if[int(vb),int(a)] in grafo.node:
vat.adj[vb] = a
vb = vb - 1
print (vat.adj)
Comment puis-je insérer dynamiquement dans les clés correctement?
est ici Vertex et grafo est une classe graphique:
class graph:
v = 0
a = 0
node = []
class vertex:
adj = {}
Merci pour toute aide.
Comment '' 'va va> vb' fonctionne avec' while vb> va'? J'aurais pensé que tu ne pourrais jamais entrer dans la boucle. – hughdbrown
Quel type d'objet est 'vat.adj'? 'vat' semble être une référence à une variable globale' vertex', mais cela ne m'aide pas. – Blckknght
cela fonctionne si l'entrée est dans cette condition, va et vb vient soit plus haut que l'autre ou pas du tout. C'est juste un peu de faire l'inverse de la première pour. – Rex