У меня есть 7 словарей в программе, данные которой извлекаются с использованием ETREE, проблема в том, что python не создает отдельный экземпляр dict для каждого dict, как показано на выходе, всякий раз, когда я печатаю любой из эти dicts я получаю тот же вывод, который является большим словарем, имеющим объединение всех данных.Различные словари, имеющие один и тот же экземпляр
tr_dict,tr_text,exp_dict,exp_text,top_dict,top_text,times=[{}]*7 #create n empty dictionaries for tr in transcript: trtext = tr.find('TATION/ANNOTATION_VALUE').text tr_time_ref = tr.find('TATION').attrib['TIME_SLOT_REF1'] tr_ann_ref = tr.find('ATION').attrib['ANNOTATION_ID'] tr_dict[tr_ann_ref] = tr_time_ref tr_text[tr_time_ref]=trtext ...
Выход:
[Dbg]>>> exp_dict is exp_text True [Dbg]>>> tr_dict is tr_text True [Dbg]>>> tr_dict is exp_dict True
Ofcourse Я не хочу, чтобы это произошло, я хочу питона, чтобы создать и использовать отдельную Dict для каждого.
возможно дубликат [Python List Index] (http://stackoverflow.com/questions/13058458/python-list-index) – ecatmur
Рассматривали ли вы tr_dict = {}, tr_text = {} и т. д.? – foosion
@ecatmur спасибо за указание на настоящую причину (перейдите по ссылке), этот ярлык стоил мне времени :( – stackit