Документы Python предоставляют предупреждения о попытке изменить dict во время итерации по нему. Это относится к представлениям?Делают ли представления Python 2.7, для/in и модификации, вместе?
Я понимаю, что взгляды являются «живыми» в том смысле, что если вы измените базовый dict, вид автоматически отражает изменение. Я также знаю, что естественный порядок dict может измениться, если элементы добавлены или удалены. Как это работает в сочетании с for/in? Можете ли вы безопасно изменить диктовку, не испортив петлю?
d = dict()
# assume populated dict
for k in d.viewkeys():
# possibly add or del element of d
Выполняет ли цикл for/in все новые элементы? Пропускает ли он элементы (из-за изменения порядка)?
Вы попробовали сами? –
'iter (d)', 'd.iterkeys()' и 'iter (d.viewkeys())' все эквивалентны. –