问题描述:
用字典的update接口更新值,健不同,值是由列表通过clear和append处理,代码如下
temp = dict()
value = []
value.clear()
value.append(2.3)
value.append(2.3)
value.append(4.3)
temp.update({"feed": value})
value.clear()
value.append(0)
value.append(0)
value.append(0)
temp.update({"sec_pos": value})
value.clear()
value.append(1)
value.append(1)
value.append(1)
temp.update({"fct": value})
print(temp)
结果如下:
{'feed': [1, 1, 1], 'sec_pos': [1, 1, 1], 'fct': [1, 1, 1]}
期待的结果理应是下面的值:
{'feed': [2.3, 2.3, 4.3], 'sec_pos': [0, 0, 0], 'fct': [1, 1, 1]}
调试项目的时候遇到这个奇怪的问题,这是为什么呢?
原来update({"feed": value})时,并不会把值拷贝一份到字典中,value保存的还是原来的列表,当value变化时,字典中的value也会随之变化!!!
解决问题: