你好,所以我有一个TypeError: 'dict'对象不可调用我想用一个图解决一个迷宫,所以我需要知道我们是否可以从一个节点传递到另一个节点。"passage"函数正在执行:
def passage(case1,case2,Lab = Labyrinth):
result = False
for valeur in Lab.dico[case1]:
if valeur == case2 :
result = True
return result
我的主要功能是(我确信一切工作,直到'if boucle == 1:')
for valeur in Labyrinth.dico[noeud] :
if valeur not in sommet_parcourus :
sommet_parcourus.append(valeur)
if valeur[0]-1 == noeud[0]: # deplacement vers le bas
plus_court_chemin(sup_sommet(Labyrinth,noeud), valeur,sommet_parcourus,2)
elif valeur[0]+1 == noeud[0]: #deplacement vers le haut
plus_court_chemin(sup_sommet(Labyrinth,noeud), valeur,sommet_parcourus,2)
elif valeur[1]-1 == noeud[1]: #deplacement vers la droite
plus_court_chemin(sup_sommet(Labyrinth,noeud), valeur,sommet_parcourus,2)
elif valeur[1]+1 == noeud[1]: #deplacement vers la gauche
plus_court_chemin(sup_sommet(Labyrinth,noeud), valeur,sommet_parcourus,2)
if boucle == 1 :
sommet_a_parcourir = {}
fin = False
while fin == False:
for i in range(len(sommet_parcourus)-1):
if passage(sommet_parcourus[i],sommet_parcourus[i+1]) == True:#this line is the one wrong
pass
else :
del sommet_parcourus[i]
break
print(sommet_parcourus)```
#sorry i'm french so there's a lot in it
我认为给你带来麻烦的是你调用了字典中的索引,而这在Python中是不允许的。
你可以在这里看到:
.
.
.
if passage(sommet_parcourus[i],sommet_parcourus[i+1]) == True:#this line is the one wrong
.
.
# and here as well
.
.
del sommet_parcourus[i]
不能通过索引调用字典项。只按键调用。
更改代码以通过键引用所需的值。祝你好运!