【发布时间】:2011-10-10 06:53:01
【问题描述】:
假设我们有一个 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 对其进行迭代。
这是明确定义的吗?您能否提供一些参考资料来支持您的回答?
(很明显,如果它坏了如何解决这个问题,所以这不是我想要的角度。)
【问题讨论】:
-
我已经尝试过这样做,似乎如果你保持初始字典大小不变 - 例如替换任何键/值而不是删除它们,那么这段代码不会抛出异常
-
我不同意对于搜索此主题的每个人(包括我自己)来说,“如果它被破坏了如何解决这个问题非常明显”,我希望接受的答案至少涉及到这一点。
标签: python dictionary