Python: Добавление элемента в список во время итерации

Я знаю, что нельзя удалять элементы во время итерации списка, но разрешено ли добавлять элементы в список Python во время итерации. Вот пример:

    for a in myarr:
      if somecond(a):
          myarr.append(newObj())

Я пробовал это в своем коде, и, похоже, он работает нормально, однако я не знаю, потому ли это, что мне просто повезло, и что он сломается в какой-то момент в будущем?

РЕДАКТИРОВАТЬ: Я предпочитаю не копировать список, поскольку «myarr» огромен, и поэтому он будет слишком медленным. Также мне нужно проверить добавленные объекты с помощью «somecond ()».

РЕДАКТИРОВАТЬ: В какой-то момент «somecond (a) " будет ложным, поэтому не может быть бесконечного цикла.

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

50
задан Bentaiba Miled Basma 5 December 2018 в 12:37
поделиться