Я попытался создать идеальный словарь для моих нужд (dict, который содержит dict со значениями и списком). Однако кажется, что я снова и снова использовал одну и ту же ссылку.Передает ли dict.fromkey одну и ту же ссылку снова и снова?
brands = ['val1', 'val2', 'val3']
infoBrands = dict.fromkeys(brands,
dict(dict.fromkeys(['nbOffers', 'nbBestOffers'], 0),
**dict.fromkeys(['higherPrice'], [])))
infoBrands['val1']['nbOffers'] += 1
print infoBrands
Вот результаты:
{'val3':
{'higherPrice': [],
'nbOffers': 1,
'nbBestOffers': 0},
'val2':
{'higherPrice': [],
'nbOffers': 1,
'nbBestOffers': 0},
'val1':
{'higherPrice': [],
'nbOffers': 1,
'nbBestOffers': 0}
}
Как вы можете видеть, val1, val2 и val3 относитесь к тому же Словарю. Я не уверен, как мне с этим справиться? Любые советы?
'dict.fromkeys' использует одно и то же значение для каждого ключа, следовательно, эталонная проблема. Вы вообще изучали 'collections.defaultdict'? (См. Например, http://bugs.python.org/issue6730) – jonrsharpe
Привет, я благодарю вас за отзыв. я сразу посмотрю на это –
Или вы можете использовать понимание dict: http://stackoverflow.com/questions/15516413/dict-fromkeys-all-point-to-same-list –