这样的代码是否保证在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或无法迭代所有条目。

如果更改现有键的值也很危险,我敢肯定他们也提到了这一点。

07-26 09:34
查看更多