Как удалять элементы из словаря во время итерации по нему?

Законно ли удалять элементы из словаря в Python во время итерации над ним?

Например:

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

Идея состоит в том, чтобы удалить из словаря элементы, которые не соответствуют определенному условию, вместо создания нового словаря, который является подмножеством того, по которому выполняется итерация.

Is это хорошее решение? Есть ли более элегантные и эффективные способы?

268
задан Trilarion 22 April 2015 в 09:47
поделиться