Эта функция поможет:
def include_keys(dictionary, keys):
"""Filters a dict by only including certain keys."""
key_set = set(keys) & set(dictionary.keys())
return {key: dictionary[key] for key in key_set}
Так же, как и версия delnan, эта использует словарь и обеспечивает стабильную производительность для больших словарей (зависит только от количества разрешенных вами ключей, а не отобщее количество ключей в словаре).
И точно так же, как и версия MyGGan, этот позволяет вашему списку ключей включать ключи, которые могут отсутствовать в словаре.
И в качестве бонуса,вот обратное, где вы можете создать словарь, исключив определенные ключи в оригинале:
def exclude_keys(dictionary, keys):
"""Filters a dict by excluding certain keys."""
key_set = set(dictionary.keys()) - set(keys)
return {key: dictionary[key] for key in key_set}
Обратите внимание, что в отличие от версии Делнана, операция не выполняется на месте, поэтому производительность связана с количествомключи в словаре.Однако преимущество этого состоит в том, что функция не будет изменять предоставленный словарь.
Редактировать: Добавлена отдельная функция для исключения определенных ключей из dict.