for j in xrange(len(self.segments)):
*
***some code here***
*
if (****condition*****):
self.segments.append(segB)
だから、私は for ループと xrange(self.segments) を持ち、ここで self.segments が incrising! 問題があると思いますか?
xrange
はループの開始時に評価されるため、追加した要素に対応するインデックスを反復処理しません。その後、再評価されることはありません。
これが間違っているかどうかは、何をしようとしているのかに完全に依存します。リストの要素を繰り返し処理したい場合 (そして、追加している要素もキャッチしたい場合) は、おそらく次の方法で回避できます。
for item in self.segments:
#...
if whatever:
self.segments.append(segB)
これは、リストが予測可能な方法で繰り返されるためです。.insert
これは、リストの最後に追加する場合にのみ機能します。途中のどこかにデータを追加すると、必ずしも機能するとは限りません。