Python 字典列表新增數據時先添加的數據被覆蓋


問題背景:

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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM