Иногда у вас есть куча данных в словаре, и вы не знаете, наверняка, если все ключи будут там.
… и вы будете обращаться с этим с:
data_dict.get('key1', 'missing') data_dict.get('key2', 'missing') data_dict.get('key3', 'missing') data_dict.get('key4', 'missing') ... ... ...
В указанном выше коде, если в словаре не существует ни одного из этих клавиш, он вернет Отсутствует
нить.
Лучший подход для этого может быть использование коллекции .Defaultdict ()
from collections import defaultdict data = {'name': 'Victor', 'lastname': 'Inojosa', 'year': 1985} def _get_default_error(): return "Oops! MISSING" #data = (lambda: "MISSING", data) data = defaultdict(_get_default_error, data) if __name__ == "__main__": print(data['name']) print(data['gender']) # Oops! MISSING print(data['city']) # Oops! MISSING
defaultdict
Требуется Callable объект (метод без призыва). Как вы можете видеть, вы также можете использовать анонимную функцию лямбда для возврата простой строки.
Я надеюсь, что это может помочь вам в ваших проектах! Пока!
Оригинал: “https://dev.to/vijoin/use-defaultdict-to-handle-missing-keys-in-a-dictionary-5g73”