1
我有一些程序的7个字典中的数据是使用ETREE获取的,问题是python不会为输出中显示的每个字典创建单独的字典实例,只要我打印任何这些字典我得到相同的输出,这是一个具有所有数据联合的大型字典。不同字典共享相同的实例
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我不希望这样的事情发生,我想蟒蛇创建和使用一个单独的字典每个。
[Python列表索引]的可能重复(http://stackoverflow.com/questions/13058458/python-list-index) – ecatmur
你有没有考虑tr_dict = {},tr_text = {}等等? – foosion
@ecatmur感谢您指出真实的原因(通过引用传递),这个快捷方式花费我时间:( – stackit