dictionary - Modifying a Python dict while iterating over it -
let's have python dictionary d
, , we're iterating on so:
for k,v in d.iteritems(): del d[f(k)] # remove item d[g(k)] = v # add new item
(f
, g
black-box transformations.)
in other words, try add/remove items d
while iterating on using iteritems
.
is defined? provide references support answer?
(it's pretty obvious how fix if it's broken, isn't angle after.)
it explicitly mentioned on python doc page (for python 2.7) that
using
iteritems()
while adding or deleting entries in dictionary may raiseruntimeerror
or fail iterate on entries.
similarly python 3.
the same holds iter(d)
, d.iterkeys()
, d.itervalues()
, , i'll go far saying for k, v in d.items():
(i can't remember for
does, not surprised if implementation called iter(d)
).
Comments
Post a Comment