【发布时间】:2019-02-06 15:20:28
【问题描述】:
我正在尝试执行 BFS,而 Python 给了我一个 int object not iterable 错误。
部分代码是
visited, queue = set(), collections.deque( ((0, 0), [ (0, 0) ] ) )
# tuple: current location, path
while queue:
vertex = queue.popleft()
i,j=vertex[0]
if i+1<=dim-1 and (i+1, j) not in visited and X[i+1, j]==0:
visited.add(( i+1, j) )
temp=( (i+1, j), vertex[1]+[(i+1, j)])
if temp[0]==(dim-1, dim-1):
return True, temp[1]
queue.append(temp)
在 while 循环下,我正在做任何其他迭代!
【问题讨论】:
-
-
i, j = <expression>暗示<expression>是可迭代的并且恰好有两个元素。而在你的情况下,表达式 (vertex[0]) 产生一个整数,它是不可迭代的。 -
所以,您实际上在您发布的块中有(至少)两次迭代,即使它们并不明显。
-
@Dunes 我很确定这就是答案,你应该发布它。
-
@Jared Smith My
visited这里是一个包含 (int, int) 形式的元组的集合
标签: python python-3.x list set