for j in xrange(len(self.segments)):
*
***some code here***
*
if (****condition*****):
self.segments.append(segB)
所以,我有一个for循环和xrange(self.segments),其中self.segments正在起义! 你认为有问题吗?
答案 0 :(得分:4)
您不会迭代与您添加的元素对应的索引,因为在循环启动时评估xrange
。之后它没有得到重新评估。
这是否错误完全取决于你想要做什么。如果你想迭代列表的元素(并且你想要捕获你正在添加的那些元素),那么你可能会逃脱:
for item in self.segments:
#...
if whatever:
self.segments.append(segB)
这是因为列表以可预测的方式迭代。这只有在您添加到列表末尾的情况下才有效 - 如果您在中间某处.insert
数据,则不一定有效。