Это будет намного быстрее, поскольку использует хеширование O (1) по словарю, в отличие от выполнения O (n) линейного поиска по списку ключей.
Ответ 3
Вы можете проверить наличие ключа в словаре, используя ключевое слово in:
d = {'a': 1, 'b': 2} 'a'in d # <== evaluates to True 'c'in d # <== evaluates to False
Обычным способом проверки существования ключа в словаре перед его изменением является инициализация значения по умолчанию (например, если ваши значения представляют собой списки, и вы хотите убедиться, что существует пустой список, к которому вы можете добавить при вставке первого значения для ключа). В подобных случаях вас может заинтересовать collections.defaultdict() тип.
В более старом коде вы также можете найти некоторые варианты использования has_key(), устаревшего метода проверки наличия ключей в словарях (просто используйте key_name in dict_name вместо этого).
Ответ 4
Вы можете сократить свой код до этого:
if'key1'in my_dict: ...
Однако это в лучшем случае косметическое улучшение. Почему вы считаете, что это не лучший способ?