先看例子
tmp_lst = []
tmp_dict = {1:xx,2:xx,3:xx...}
for i in range(5):
for row in tmp_dict.get(i):
row['count'] = i
tmp_lst.append(row)
最后会发现tmp_dict里的每一个元素的“count”都是4
这是因为所有的row都指向了同一个内存地址,可以用id(row)打出地址查看
解决办法:
tmp_lst = []
tmp_dict = {1:xx,2:xx,3:xx...}
for i in range(5):
for row in tmp_dict.get(i):
out_row = row.copy()
out_row ['count'] = i
tmp_lst.append(out_row)
“在python中,对象赋值实际上是对象的引用。当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用”
今日有感:如此简单感觉根本不可能会犯的错误,还是不经意间出现了,要加强底层学习,做事更加认真。