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

所以,我有一个 for 循环和 xrange(self.segments),其中 self.segments 正在增加!你觉得有问题吗?

4

1 回答 1

4

您不会遍历与您添加的元素相对应的索引,因为xrange在循环开始时进行评估。之后不会重新评估它。

这是否错误完全取决于您要做什么。如果你想遍历列表的元素(并且你想捕捉你正在添加的元素),那么你可能会逃脱:

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

这是因为列表以可预测的方式迭代。.insert这仅在您添加到列表末尾时才有效——如果您在中间的某个地方提供数据,则不一定有效。

于 2013-04-02T17:35:58.680 回答