저는 python을 처음 접했고 큐를 반복 할 때 이상한 오류를 발견했습니다.파이썬에서 객체를 포함하는 큐를 반복합니다.
는 여기에 코드입니다 :
frontier = q.PriorityQueue()
for goal in goals:
portals = findPortals(maze)
comb_value = heuristic(startX, startY, goal[0], goal[1])
frontier.put_nowait((comb_value, heuristic(startX, startY, goal[0], goal[1]), 0, startX, startY, startX, startY))
for portal in portals:
heur = portalHeuristic(maze, startX, startY, goal[0], goal[1])
frontier.put_nowait((heur, heur, 0, startX, startY, startX, startY))
for elem in list(frontier):
print(elem)
이 TypeError: 'PriorityQueue' object is not iterable
말한다 요소를 인쇄하려고합니다. 어떻게 든이 문제를 해결할 수 있습니까? 여기에 몇 가지 해결책을 찾으려고했지만 이해할 수있는 것을 찾지 못했습니다.
우선 순위 큐가하는 일을 완전히 이해하지 못하는 것처럼 들릴 수 있습니다. 일반적으로 힙 (heap)이 아니며 링크 된 목록이 아닙니다. 즉, 맨 위에있는 요소를 제외하고는 순서가 없습니다. –
이 [PriorityQueue] (https://docs.python.org/3/library/queue.html#queue.PriorityQueue)를 사용하고 있습니까? –
또한 https://stackoverflow.com/questions/21157739/iterating-through-queue-with-for-loop-instead-of-while-loop을 참조하십시오. –