Wie lösche ich Elemente aus einem Wörterbuch, während ich darüber iteriere?

| | | | | | |

Ist es legitim, Elemente aus einem Wörterbuch in Python zu löschen, während man darüber iteriert?

Zum Beispiel:

für k, v in mydict.iteritems(): if k == val: del mydict[k] 

Die Idee ist, Elemente aus dem Wörterbuch zu entfernen, die eine bestimmte Bedingung nicht erfüllen, anstatt ein neues Wörterbuch zu erstellen, das eine Teilmenge ist von demjenigen, über den iteriert wird.

Ist das eine gute Lösung? Gibt es elegantere/effizientere Wege?