問題背景:
Python字典列表中的每一項,存儲的是各個字典的引用,而不是一份獨立的對象拷貝。
因此每次向字典列表中添加新的字典時,需要用一個新的字典對象,而不能通過修改原有對象的內容來實現。
錯誤操作:
1 t_dict = dict() 2 t_dict_list = [] 3 4 t_dict['value'] = 1 5 t_dict['label'] = "test1" 6 t_dict_list.append(t_dict) 7 8 t_dict['value'] = 2 9 t_dict['label'] = "test2" 10 t_dict_list.append(t_dict) 11 12 # 兩次添加字典,使用同一個字典對象,只是修改了一下其中的內容,因此打印出來會發現列表中的內容都是修改后的內容的重復 14 print(t_dict_list)
正確操作:
t_dict_list = [] t_dict = dict() t_dict['value'] = 1 t_dict['label'] = "test1" t_dict_list.append(t_dict) print(t_dict_list) t_dict = dict() # 創建一個新的字典對象 t_dict['value'] = 2 t_dict['label'] = "test2" t_dict_list.append(t_dict) # 每次添加新數據時都用了一個新的字典對象,因此打印出來可以發現列表中的內容與期望的內容一致 print(t_dict_list)