Como excluir itens de um dicionário enquanto iteramos sobre ele?

| | | | | | |

É legítimo deletar itens de um dicionário em Python enquanto iteramos sobre ele?

Por exemplo:

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

A idéia é remover do dicionário os elementos que não atendem a uma determinada condição, em vez de criar um novo dicionário que seja um subconjunto do que está sendo iterado.

Esta é uma boa solução? Existem formas mais elegantes/eficientes?