Является ли эта распространенная практика тем, что ключ не найден в словаре

Мне было интересно, является ли следующий стиль обычной практикой, чтобы избежать того, что ключ не найден в словаре?

# default is 0
value = my_dic[100] if 100 in my_dic else 0

Ответ 1

value = my_dic.get(100, 0)

Ответ 2

Если вам нужно "значение по умолчанию" повсюду, рассмотрите defaultdict в качестве возможной альтернативы. (A factory/обратный подход предлагает хорошую гибкость с "значением по умолчанию".)

Счастливое кодирование.

Ответ 3

Если вы попытаетесь получить доступ к ключу, который отсутствует в словаре, python вызовет исключение, которое приведет к сбою вашей программы. Вместо этого вы должны "поймать" исключение и сделать что-то более изящное.

лучше поймать исключение:

try: 
  value = my_dic[100]
except KeyError:
   print("key not found in dictionary") #or handle the error more elegantly

Я не читал статью, но вы можете узнать больше здесь: http://en.wikipedia.org/wiki/Exception_handling

Ответ 4

Это действительный синтаксис python, однако я бы сказал, что согласно Правила стиля кодирования Python Вам следует структурировать ваши инструкции if else, например,

if <condition>:
    <statements>
else:
    <statements>

Ответ 5

first_name = params.get('first_name', None)
if first_name:
    profile.first_name = first_name