Comment supprimer des éléments d’un dictionnaire tout en parcourant celui-ci ?

| | | | | | |

Est-il légitime de supprimer des éléments d'un dictionnaire en Python lors de l'itération ?

Par exemple :

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

L'idée est de supprimer les éléments qui ne remplissent pas une certaine condition du dictionnaire, au lieu de créer un nouveau dictionnaire qui est un sous-ensemble de celui en cours d'itération.

Est-ce une bonne solution ? Existe-t-il des moyens plus élégants/efficaces ?