вставка в словарь Python

По умолчанию словарь 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
20
задан Ramy 23 June 2011 в 18:05
поделиться