# Код Python для демонстрации словаря и
# отсутствует ошибка значения
# инициализация словаря
d
=
{
`a`
:
1
,
` b`
:
2
}
# попытка отобразить значение отсутствующего ключа
print
(
"Значение, связанное с` c`: "
)
print
(d [
` c`
])
Ошибка:
Traceback (последний последний вызов): файл "46a9aac96614587f5b794e451a8f4f5f.py", строка 9, в печати (d [`c`]) KeyError:` c`
In В приведенном выше примере ни один ключ с именем «с» в словаре не выдал ошибки времени выполнения. Чтобы избежать таких условий и предупредить пользователя об отсутствии определенного ключа или отправить сообщение по умолчанию в это место, существует несколько способов обработки отсутствующих ключей.
Способ 1. Использование get()
Метод get (key, def_val) полезен, когда нам нужно проверить ключ. Если ключ присутствует, выводится значение, связанное с ключом, в противном случае возвращается значение def_value, переданное в аргументах.
Способ 2: Использование setdefault()
setdefault (key, def_value) работает как get(), но разница в том, что каждый раз, когда key отсутствует, создается новый ключ с def_value, связанным с key передается в аргументы.
Чтобы реализовать описанные выше функции, нажмите здесь Defaultdict " — это контейнер, определенный в модуль с именем "коллекция ". Он принимает функцию (фабрику по умолчанию) в качестве аргумента . По умолчанию заводская установка по умолчанию имеет значение "int", что равно 0 . Если ключ отсутствует — defaultdict, возвращает и по умолчанию отображается по умолчанию . Он имеет приоритет над get() или setdefault().
- Значение по умолчанию задается в декларации . Нет необходимости снова и снова вызывать функцию и передавать одни и те же значения в качестве аргументов. Отсюда экономия времени .
- Реализация defaultdict выполняется быстрее, чем get() или setdefault().
# Код Python для демонстрации defaultdict
# import " коллекции " для defaultdict
import
collections
# объявление по умолчанию
# устанавливает значение по умолчанию "Ключ не найден" для отсутствующих ключей
defd
=
коллекции. defaultdict (
lambda
:
`Ключ не найден`
)
# инициализация значений
defd [
`a`
]
=
1
# инициализация значений
defd [
`b`
]
=
2
# значение для печати
print
(
"Значение, связанное с` a`: "
, end
=
"")
print
(defd [
`a`
])
# вывести значение, связанное с ' с '
print
(
"Значение, связанное с ` c` is: "
, end
=
" ")
print
( defd [
`c`
])
Вывод:
Значение, связанное с `a`: 1 Значение, связанное с `c`: Ключ не найден
Эта статья любезно предоставлена Манджит Сингх . Если вы представляете Python.Engineering и хотели бы внести свой вклад, вы также можете написать статью, используя вклад.python.engineering или опубликовав статью. внести свой вклад @ python.engineering. См. мою статью на домашней странице Python.Engineering и помогите другим специалистам.
Оставляйте комментарии, если вы обнаружите что-то не так или если вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.