我不理解 Python 在以下方面给我的行为:
>>> adj = gx.g.neighbors('v')
>>> adj
['x', 'w']
>>> gx.d['x']
[13, 14, 'black', 'v']
>>> gx.d['w']
[9, 333, 'black', 'v']
>>> for x in adj: #for every element in the list
... print "x", x, gx.d[x]
... print "color", gx.d[x][2]
... if gx.d[x][2] != 'white':
... adj.remove(x)
...
x x [13, 14, 'black', 'v']
color black
>>> adj
['w']
我不明白为什么看起来只有元素'x'
被打印在循环中。发生了什么事'w'
。算法段的输出应该是一个空列表,因为 的两个元素adj
都是黑色的。