Изменение словаря Python во время итерации по нему

Допустим, у нас есть словарь Python d , и мы повторяем его так:

for k,v in d.iteritems():
    del d[f(k)] # remove some item
    d[g(k)] = v # add a new item

( f и g - это всего лишь некоторые преобразования черного ящика.)

Другими словами, мы пытаемся добавлять / удалять элементы на d при итерации с использованием iteritems .

Это хорошо определено? Не могли бы вы привести несколько ссылок в поддержку своего ответа?

(Довольно очевидно, как исправить это если он сломан, значит, это не тот угол, который мне нужен.)

74
задан Bach 19 June 2014 в 07:24
поделиться