STINNER Victor <[email protected]> added the comment:
> I much prefer dict_lookup.patch to nomodify.patch.
> It doesn't increase the memory use of dict. One extra word
> per dict could be a lot of memory for a large application.
nomodify.patch is the correct fix, but I agree that dict_lookup.patch is better
(and sufficient) in practive.
> Raising a runtimne seesm sensible as the dict iterators already
> raise a RuntimeError if the size of the dict changes.
Yes, that's how I chose the exception.
>>> d={k: str(k) for k in range(10)}
>>> for k in d:
... del d[k]
...
RuntimeError: dictionary changed size during iteration
>>> d={k for k in range(10)}
>>> for k in d:
... d.remove(k)
...
RuntimeError: Set changed size during iteration
>>> d=list(range(10))
>>> def keyfunc(x):
... d.append(1)
... return x
...
>>> d.sort(key=keyfunc)
ValueError: list modified during sort
----------
nosy: +gvanrossum
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue14205>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com