Python "or" оператор не работает со словарем
Код:
test = {
"2": 1
}
c = test["1"] or test["2"]
print(c)
Ошибка:
c = test["1"] or test["2"]
KeyError: '1'
Process finished with exit code 1
Что тут не так?
Ответы (1 шт):
Автор решения: Roman Konoval
→ Ссылка
То что вы хотите делается так:
c = test.get('1', test.get('2'))
Второй параметр в get будет возвращен, если ключ переданный в первом параметре не существует в словаре.
Или как вариант:
c = test.get('1') or test['2']
get в отличии от [] не бросает исключения, а вернет None, если ключа нет (действует аналогично test.get('1', None), т.е. значение по умолчанию будет None).
У вас же исключение случается до того как or может что-то сделать.