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)

猜你喜欢

转载自www.cnblogs.com/jayzhou/p/12735470.html