Is this behavior of list iteration guaranteed by documentation anywhere? A quick search didn't yield any results for me. If not, I suggest either: a) it gets documented so developers can rely on it, or b) the lack of guarantee is documented so that we can reserve a change of behavior later. Paul On Sun, 2021-10-10 at 13:17 +1300, Greg Ewing wrote:
On 9/10/21 11:24 am, Tyler Hou via Python-ideas wrote:
Right now, the following code is valid in Python 3.9 (and infinitely loops):
``` lst = [1, 2, 3] for i in lst: lst.append(i) ```
1. If the size of a list, set, or dict changes, invalidate all existing iterators to that containers.
This would break Plex. I use a loop like that as part of the NFA-to-DFA conversion to calculate the epsilon-closure of a state (although obviously there are conditions on adding things to the list that ensure it terminates).