You can iterate over a copy and do a lookup:
for k in myDict.copy():
if myDict[k] == 42:
del myDict[k]
Or only copy the keys:
myDict = {1:"egg", "Answer":42, 8:14, "foo":42}
for k in list(myDict):
if myDict[k] == 42:
del myDict[k]
print(myDict)
{8: 14, 1: 'egg'}
Which if you want to mutate the original dict should be the most efficient.