newdict = dict(
(key, value)
for key, value in olddict.iteritems()
if key not in set(list_of_keys)
)
Позже (как в конце 2012 года):
keys = set(list_of_keys)
newdict = dict(
(key, value)
for key, value in olddict.iteritems()
if key not in keys
)
Или если вы используете словарь языка Python 2.7+:
keys = set(list_of_keys)
newdict = {
key: value
for key, value in olddict.iteritems()
if key not in keys
}
Или, может быть, дажеПонимание словаря Python 2.7 плюс набор пересечений на клавишах:
required_keys = set(olddict.keys()) - set(list_of_keys)
return {key: olddict[key] for key in required_keys}
О, да, возможно, проблема в том, что у меня было условие, обратное для вычисления требуемых ключей.