[Tutor] deleting elements of a dictionary

Mats Wichmann mats at wichmann.us
Fri May 19 16:54:14 EDT 2017

On 05/19/2017 11:17 AM, Alan Gauld via Tutor wrote:
> On 19/05/17 15:23, Michael C wrote:
>> list(read_dictionary) converts the dictionary into a list right? How can
>> you save the list as a dictionary?
> Nope, list() produces a new list object containing the
> keys of the dictionary. In the old day(of python 2) you
> used to get the same effect using
> for key in mydict.keys()
> but keys() now returns a funky view of the original dict
> keys and I suspect you'd have the same problems when
> deleting items. So Peter's list() is probably the best
> option.

Or to take another related view:

don't remove items from an iterable while iterating over it: del() is
okay as long as you're not looping over the thing.

Dictionaries have a method for this called pop(), but to my blushes, I
don't really have a lot of experience with it.

What I'd think of just off the bat is build a new dictionary on the fly,
omitting the things you were trying to delete, and then if you like,
save the new dict by the old name (which will cause the old one to have
no references and be dropped.

More information about the Tutor mailing list