Peter Otten wrote: > def pop(self): > f, node = heapq.heappop() > del lookup[node.pos] > return node That should be def pop(self): f, node = heapq.heappop(self.heap) del self.lookup[node.pos] return node