Python – How to Remove Certain Keys from a Dictionary in Python

dictionarypythonpython-3.x

I'm trying to construct a dictionary that contains a series of sets:

{Field1:{Value1, Value2, Value3}, Field2{Value4}}

The trouble is, I then wish to delete any fields from the dictionary that only have one value in the set. I have been writing code like this:

for field in FieldSet:
    if len(FieldSet[field]) == 1:
        del(FieldSet[field])

But receive the error "RuntimeError: dictionary changed size during execution". (Not surprising, since that's what I'm doing.) It's not the be-all and end-all if I have to knock together some sort of workaround, but is it possible to do this?

Best Answer

Iterate over the return value from .keys() instead. Since you get a list of keys back, it won't be affected by changing the dictionary after you've called it.

Related Question