一个列表,同时被多处引用时,其中一处修改列表中的元素,其他处的列表也都相应的修改了
例如 :
a = [0] * 3
d = {
"x": a,
"y": a,
"z": a
}
当修改某处的列表时
所列表相同位置的元素都修改了
换一种写法
d = {
"x": [0] * 3,
"y": [0] * 3,
"z": [0] * 3
}
然后再修改某个列表的元素
结果就不同了
这里如果引入指针的概念,应该可以这么理解,第一种列表在内存中只开辟了一处存储空间,所有的列表都是指向同一处的;第二种写法,d变量的值看过去相同,但却是每个列表单独使用各自的存储空间,在修改的时,互不干扰
在开发当中,处理数据量多的时候,就可能遇上这样的问题,视应用场景选择