Я знаю, что нельзя удалять элементы во время итерации списка, но разрешено ли добавлять элементы в список Python во время итерации. Вот пример:
for a in myarr:
if somecond(a):
myarr.append(newObj())
Я пробовал это в своем коде, и, похоже, он работает нормально, однако я не знаю, потому ли это, что мне просто повезло, и что он сломается в какой-то момент в будущем?
РЕДАКТИРОВАТЬ: Я предпочитаю не копировать список, поскольку «myarr» огромен, и поэтому он будет слишком медленным. Также мне нужно проверить добавленные объекты с помощью «somecond ()».
РЕДАКТИРОВАТЬ: В какой-то момент «somecond (a) " будет ложным, поэтому не может быть бесконечного цикла.
РЕДАКТИРОВАТЬ: Кто-то спросил о функции "somecond ()". Каждый объект в myarr имеет размер, и каждый раз, когда «somecond (a)» истинно и к списку добавляется новый объект, новый объект будет иметь размер меньше a. В "somecond ()" есть эпсилон, указывающий, насколько маленькими могут быть объекты, и если они слишком малы, он вернет "false"