STINNER Victor <victor.stin...@gmail.com> 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 <rep...@bugs.python.org> <http://bugs.python.org/issue14205> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com