Инициализация словаря в python с ключом и отсутствие соответствующих значений

Мне было интересно, есть ли способ инициализировать словарь в python с ключами, но никаких соответствующих значений до тех пор, пока я их не установлю. Такие как:

Definition = {'apple': , 'ball': } 

а затем я могу установить их:

 Definition[key] = something 

Я только хочу инициализировать ключи, но я не знаю соответствующих значений, пока не буду устанавливать их позже. В основном я знаю, какие ключи я хочу добавить значения, поскольку они найдены. Благодарю.

5 Solutions collect form web for “Инициализация словаря в python с ключом и отсутствие соответствующих значений”

Вы можете инициализировать их None .

Используйте функцию fromkeys для инициализации словаря любым значением по умолчанию. В вашем случае вы инициализируетесь с помощью None поскольку у вас нет значения по умолчанию.

 empty_dict = dict.fromkeys(['apple','ball']) 

это инициализирует empty_dict как:

 empty_dict = {'apple': None, 'ball': None} 

В качестве альтернативы, если вы хотите инициализировать словарь с некоторым значением по умолчанию, отличным от None , вы можете сделать следующее:

 default_value = 'xyz' nonempty_dict = dict.fromkeys(['apple','ball'],default_value) 

Вы можете инициализировать значения как пустые строки и заполнить их позже, когда они будут найдены.

 dictionary = {'one':'','two':''} dictionary['one']=1 dictionary['two']=2 

Было бы хорошо знать, какова ваша цель, почему вы хотите инициализировать ключи в первую очередь. Я не уверен, что вам нужно это делать вообще.

1) Если вы хотите подсчитать количество вхождений ключей, вы можете просто сделать:

 Definition = {} # ... Definition[key] = Definition.get(key, 0) + 1 

2) Если вы хотите получить None (или какое-то другое значение) позже для ключей, с которыми вы не сталкивались, снова вы можете просто использовать метод get ():

 Definition.get(key) # returns None if key not stored Definition.get(key, default_other_than_none) 

3) Для всех других целей вы можете просто использовать список ожидаемых ключей и проверить, соответствуют ли найденные ключи позже.

Например, если вы хотите сохранить значения для этих ключей:

 expected_keys = ['apple', 'banana'] # ... if key_found in expected_keys: Definition[key_found] = value 

Или если вы хотите убедиться, что все ожидаемые ключи были найдены:

 assert(all(key in Definition for key in expected_keys)) 

вы можете использовать defaultdict. Это позволит вам устанавливать значения словаря, не беспокоясь о том, что ключ уже существует. Если вы получите доступ к ключу, который еще не был инициализирован, он вернет указанное вами значение (в приведенном ниже примере оно будет возвращать None)

 from collections import defaultdict your_dict = defaultdict(lambda : None) 
  • Разбирайте CSV-файл с и совокупными значениями, несколькими столбцами
  • можно использовать несколько ключей в словаре python?
  • Соглашения об именах Python для словарей / карт / хэшей
  • Рекурсивный факториал с использованием dict вызывает RecursionError
  • Python: проверьте, является ли один словарь подмножеством другого более крупного словаря
  • Объект Date только год и месяц
  • Удаление дубликатов из словаря
  • Перегрузка динамического оператора на классы dict в Python
  • Python - лучший язык программирования в мире.