2013-04-26 3 views
-1

Я следую этому примеру Can I do an ordered, default dict in Python?Как я могу использовать по умолчанию упорядоченного Dict в питоне

Но когда я использую этот

if mydict['item']` 

тогда я получаю ошибку клавишной. Он не должен давать мне эту ошибку.

Не должна ли она предположить, чтобы быть пустым, даже если ключ не существует

+0

Вы создаете '' mydict' с default_factory' аргументом? – gatto

+0

Он работает для меня, используя этот рецепт. Можете ли вы показать простой воспроизводимый пример? – mgilson

+0

нет, как я должен это делать – user2294401

ответ

2

Чтобы иметь значения по умолчанию в вашем Словаре, вы должны установить default_factory, который должен быть вызываемым.

Пример использования:

d = DefaultOrderedDict(lambda: None) 
assert d['item'] is None 

# as with normal dict, you can init it with another dict 
d = {'key': 'value'} 
d = DefaultOrderedDict(list, d) 
assert d['item'] == [] 
assert d['key'] == 'value' 
+0

Я использую как это d = DefaultOrderedDict (список) – user2294401

+0

С 'list' также работает для меня. – gatto

+0

есть ли способ, что если у меня уже есть нормальный dict и я конвертирую это в DefaultDict. Я думаю, что я скрываю это для json и ethen от json, укрывающегося обратно в dict by json.loads(), поэтому думаю, что я потерял его во время конверсии – user2294401

Смежные вопросы