小编noo*_*low的帖子

为什么在迭代时添加到集合和从集合中删除时会得到这么多的迭代?

试图理解 Python for 循环,我认为这会给出{1}一次迭代的结果,或者只是陷入无限循环,这取决于它是否像在 C 或其他语言中那样进行迭代。但实际上两者都没有。

>>> s = {0}
>>> for i in s:
...     s.add(i + 1)
...     s.remove(i)
...
>>> print(s)
{16}
Run Code Online (Sandbox Code Playgroud)

为什么要进行 16 次迭代?结果{16}从何而来?

这是使用 Python 3.8.2。在 pypy 上,它产生了预期的结果{1}

python python-internals

70
推荐指数
3
解决办法
3419
查看次数

标签 统计

python ×1

python-internals ×1