这样的代码是否保证在Python中工作?
d = {k: 2 * k for k in range(10)}
for k, v in d.items():
d[k] = v + 1
据我所知,删除密钥无效,添加密钥也无效?
我知道我可以通过重建dict(例如,使用理解)来解决此问题。
编辑:我正在寻找一个参考,以确保可以在Python中正常工作(例如,不保证它在CPython的当前实现中有效)。
最佳答案
documentation警告有关添加和删除:
在字典中添加或删除条目时迭代 View 可能会引发RuntimeError或无法迭代所有条目。
如果更改现有键的值也很危险,我敢肯定他们也提到了这一点。