0
for j in xrange(len(self.segments)):
    *
    ***some code here*** 
    *
    if (****condition*****):
        self.segments.append(segB)

だから、私は for ループと xrange(self.segments) を持ち、ここで self.segments が incrising! 問題があると思いますか?

4

1 に答える 1

4

xrangeはループの開始時に評価されるため、追加した要素に対応するインデックスを反復処理しません。その後、再評価されることはありません。

これが間違っているかどうかは、何をしようとしているのかに完全に依存します。リストの要素を繰り返し処理したい場合 (そして、追加している要素もキャッチしたい場合) は、おそらく次の方法で回避できます。

for item in self.segments:
    #...
    if whatever:
        self.segments.append(segB)

これは、リストが予測可能な方法で繰り返されるためです。.insertこれは、リストの最後に追加する場合にのみ機能します。途中のどこかにデータを追加すると、必ずしも機能するとは限りません。

于 2013-04-02T17:35:58.680 に答える