试图理解 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}。