赵子林 发表于 2021-10-5 20:16:05

求大佬求大佬!!!为啥list2 = list1后,改变list1,list2不变啊

大佬

Gacy 发表于 2021-10-5 20:46:39

你的list1不是重新赋值了吗

冬雪雪冬 发表于 2021-10-5 21:37:23

list1 = #list1指向地址1
list2 = list1 #list2也指向地址1
list1 = #list1重新赋值,指向地址2,但list2仍然指向地址1

z5560636 发表于 2021-10-6 06:34:28

应该这么看,就不会觉得困惑了:
# 0xaaa    列表的内存地址
# 0xbbb       列表的内存地址
list 1 = 0xaaa    # list1 =
list2 = 0xaaa   # list2 = list1
list1 = 0xbbb   # list1 =

# 得出的结论是,你主观的认为赋值语句就是把 list1放进 list2 里面去,这个时候我改变 list1 的话 list2 必然跟着改变。如果你想深入了解相关的知识点的话,可以百度一下 ”深拷贝和浅拷贝的区别“
页: [1]
查看完整版本: 求大佬求大佬!!!为啥list2 = list1后,改变list1,list2不变啊