0

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の両方の要素が黒であるため、アルゴリズム セグメントの出力は空のリストである必要があります。

4

1 に答える 1

4

要素を削除する代わりに、新しいリストを作成します。

new_adj = [x for x in adj if gx.d[x][2] == 'white']
于 2013-04-04T03:17:20.133 に答える