求大佬求大佬!!!为啥list2 = list1后,改变list1,list2不变啊
大佬 你的list1不是重新赋值了吗 list1 = #list1指向地址1list2 = list1 #list2也指向地址1
list1 = #list1重新赋值,指向地址2,但list2仍然指向地址1
应该这么看,就不会觉得困惑了:
# 0xaaa 列表的内存地址
# 0xbbb 列表的内存地址
list 1 = 0xaaa # list1 =
list2 = 0xaaa # list2 = list1
list1 = 0xbbb # list1 =
# 得出的结论是,你主观的认为赋值语句就是把 list1放进 list2 里面去,这个时候我改变 list1 的话 list2 必然跟着改变。如果你想深入了解相关的知识点的话,可以百度一下 ”深拷贝和浅拷贝的区别“
页:
[1]