したがって、次のPythonコードでエラーが発生します。TypeError:'NoneType'オブジェクトに属性がありません' getitem '
リスト「パス1」がリストとして認識されず、代わりにNoneTypeとして認識される理由がわかりません。
以前のStackの質問、グーグル、そのすべてをチェックしましたが、なぜそれが起こっているのか理解できません。これは(私が思うに)近づきましたが、私のstate =path[-1]呼び出しがこのエラーを引き起こしている理由がわかりません。
何かご意見は?とても有難い。
ありがとう
コード:
import re
import string
gr = {
"A":["B","C","D"],
"B":["A","E"],
"C":["A","E"],
"D":["A","H","I","J"],
"E":["B","C","F","G","H"],
"F":["E"],
"G":["E","H"],
"H":["D","E","G","K"],
"I":["D","K","L"],
"J":["D","M"],
"K":["I","M","H"],
"L":["I"],
"M":["K","J"]
}
def graphSearch(graph, start, dest):
frontier = [[start]]
explored = []
options = []
if frontier == []: return "I hope you enjoyed riding aboard the failboat"
while len(frontier)>0:
path = frontier.pop()
state = path[-1]
if state == dest:
return path
else:
for a in graph[state]:
if a not in path:
newP = path.append(a)
frontier.append(newP)
return options
print graphSearch(gr, "A", "M")