我知道在迭代列表时不允许删除元素,但是在迭代时允许向 python 列表添加元素。这里有一个例子:
for a in myarr:
if somecond(a):
myarr.append(newObj())
我已经在我的代码中尝试了这个,它似乎工作得很好,但是我不知道这是否是因为我只是幸运,它将在未来的某个时刻中断?
编辑: 我不喜欢复制的名单,因为“ myarr”是巨大的,因此它会太慢。我还需要用“ somsecond ()”检查附加的对象。
编辑: 在某一点上,“ some second (a)”将为 false,因此不可能存在无限循环。
编辑: 有人问到“ some second ()”函数。Myarr 中的每个对象都有一个大小,每当“ some second (a)”为真,并且一个新对象被添加到列表中时,新对象的大小将小于 a。“ some second ()”有一个小对象的 ε 表示小对象的大小,如果它们太小,它将返回“ false”