Рубрики

Обработка недостающих ключей в словарях Python

В python словари — это контейнеры, которые отображают один ключ на его значение со сложностью времени доступа, равной O (1) . Но во многих приложениях пользователь не знает всех ключей, присутствующих в словарях. В таких случаях, если пользователь пытается получить доступ к отсутствующему ключу, появляется ошибка, указывающая на отсутствующие ключи .

# Код Python для демонстрации словаря и
# ошибка пропущенного значения

  
# инициализация словаря

d = { 'a' : 1 , 'b' : 2 }

  
# пытаемся вывести значение отсутствующего ключа

print ("The value associated with 'c' is : ")

print (d['c'])

Ошибка :

Traceback (most recent call last):
  File "46a9aac96614587f5b794e451a8f4f5f.py", line 9, in 
    print (d['c'])
KeyError: 'c'

В приведенном выше примере ни один ключ с именем «c» в словаре не выдал ошибку времени выполнения. Чтобы избежать таких условий и предупредить пользователя об отсутствии определенного ключа или отправить сообщение по умолчанию в это место, существует несколько способов обработки пропущенных ключей.

Способ 1: использование get ()

Метод get (key, def_val) полезен, когда нам нужно проверить ключ. Если ключ присутствует, печатается значение, связанное с ключом, иначе возвращается значение def_value, переданное в аргументах.

Способ 2: использование setdefault ()

setdefault (key, def_value) работает аналогично get (), но отличие состоит в том, что каждый раз, когда ключ отсутствует, создается новый ключ с def_value, связанным с ключом, передаваемым в аргументах.

Для реализации вышеуказанных функций, нажмите здесь .

Способ 3: использование defaultdict

« Defaultdict » — это контейнер, который определен в модуле с именем « collection ». Он принимает функцию (фабрика по умолчанию) в качестве аргумента . По умолчанию заводская установка по умолчанию установлена на «int», то есть 0 . Если ключ отсутствует — defaultdict, возвращается и отображается заводское значение по умолчанию . Он имеет преимущества перед get () или setdefault ().

  • Значение по умолчанию устанавливается в объявлении . Нет необходимости снова и снова вызывать функцию и передавать аналогичные значения в качестве аргументов. Отсюда экономия времени .
  • Реализация defaultdict быстрее, чем get () или setdefault ().

# Python-код для демонстрации defaultdict

  
# импорт "коллекций" для defaultdict

import collections

  
# объявление дефолта
# устанавливает значение по умолчанию «Ключ не найден» для отсутствующих ключей

defd = collections.defaultdict(lambda : 'Key Not found')

  
# инициализация значений

defd['a'] = 1

  
# инициализация значений

defd['b'] = 2

  
# значение печати

print ("The value associated with 'a' is : ",end="")

print (defd['a'])

  
# значение печати, связанное с 'c'

print ("The value associated with 'c' is : ",end="")

print (defd['c'])

Выход :

The value associated with 'a' is : 1
The value associated with 'c' is : Key Not found

Эта статья предоставлена Манджитом Сингхом . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Обработка недостающих ключей в словарях Python

0.00 (0%) 0 votes