Не удается разрешить одноранговые зависимости в проекте узла

Вы не можете изменять коллекцию при ее итерации. Таким образом, безумие - в первую очередь, если вам разрешено удалять и удалять текущий элемент, то итератору нужно будет двигаться дальше (+1), а следующий вызов next приведет вас к тому, что (+2), поэтому вы закончите тем, что пропустите один элемент (тот, который прямо за тем, который вы удалили). У вас есть два варианта:

  • Скопируйте все ключи (или значения или и то, и другое в зависимости от того, что вам нужно), а затем переберите их. Вы можете использовать .keys() et al для этого (в Python 3 передать результирующий итератор на list). Однако может быть очень расточительным по пространству.
  • Как обычно, переходите к mydict, сохраняя ключи для удаления в отдельной коллекции to_delete. Когда вы закончите повтор mydict, удалите все элементы в to_delete из mydict. Сохраняет некоторые (в зависимости от того, сколько ключей удалено и сколько осталось) пробегает первый подход, но также требует еще несколько строк.
0
задан Alexander Kondaurov 16 January 2019 в 09:02
поделиться