По умолчанию словарь python создает новый ключ в словаре, если этот ключ еще не существует. Например:
d = {}
d['did not exist before'] = 'now it does'
это все хорошо для большинства целей, но что, если я хочу, чтобы python ничего не делал, если ключа еще нет в словаре. В моей ситуации:
for x in exceptions:
if masterlist.has_key(x):
masterlist[x] = False
другими словами, я не хочу, чтобы некоторые неправильные элементы в исключениях повредили мой мастер-список. Это так просто, как кажется? он ПОЧУТСТВУЕТ , как будто я могу сделать это в одной строке внутри цикла for (т.е. без явной проверки того, что x является ключом masterlist)
ОБНОВЛЕНИЕ: Для меня мой вопрос заключается в отсутствии параллели между списком и диктом. Например:
l = []
l[0] = 2 #fails
l.append(2) #works
с ответом о подклассе вы можете изменить словарь (возможно, «safe_dict» или «explicit_dict», чтобы сделать что-то подобное:
d = {}
d['a'] = '1' #would fail in my world
d.insert('a','1') #what my world is missing