class Map():
def returnWay(self, node1, node2):
final_list = []
temp_list = []
self._returnWay(node1, node2, final_list, temp_list)
return final_list
def _returnWay(self, node1, node2, final_list, temp_list):
if node1 not in temp_list:
temp_list.append(node1)
if node1 == node2:
final_list.append(temp_list)
del temp_list[-1]
else:
for x in node1.nexts():
self._returnWay(x, node2, final_list, temp_list)
del temp_list[-1]
path = Map()
for x in path.returnWay(node1, node2):
print x
좋아 얘들 아, 내가 여기 파이썬 반환 빈 목록
나는 기존의 모든를 얻으려고 ... 정말 영어를, 그래서 말하기 몇 가지 실수를하면 실례하지 않습니다 두 노드 사이에는 4 가지 방법이 있지만 대신 4 가지 빈 목록이 있습니다."for x in temp_list : print x"줄에 13을 넣으면 4 가지 방법이 모두 인쇄되지만 어떤 이유로 final_list에 추가되지 않습니다.
Plase, 충분히 명확하지 않거나 좀 더 자세한 정보를 제공 할 수 있는지 알려주세요. – RomanVenica
초기 노드 (즉,'node1 == node2')로 돌아 오면'del temp_list [-1]'을 두 번, 한 번 반환하기 전에 한 번 그리고 반환 한 후에 두 번 호출합니다. 나는 당신의 코드가 어떻게 작동해야하는지 잘 모르겠다. 그러나 이것은 내가 처음 공격하는 생각이다. – dhke
답변 해 주셔서 감사합니다. Node1과 Node2가 일치 할 때 더 이상 이유가 없어지기 때문에 첫 번째 del이 있습니다. 그리고 두 번째 것은 모든 adyacents 노드가 방문되었을 때 발생합니다. 그래서 이전의 방법을 볼 수 있습니다. – RomanVenica