a = [[1, 2], [3, 4]] b = a[:] print(id(a)) print(id(b)) b[-1][-1] = 5 print(a) print(b) print(id(a)) print(id(b))
结果如下:
29949064
128439280
[[1, 2], [3, 5]]
[[1, 2], [3, 5]]
29949064
128439280
相当于b是a的引用(C++)。
请尝试使用深拷贝。
import copy
b = copy.deepcopy(a)
列表切片是浅拷贝,只拷贝一层,第二层的列表只是简单的赋值,没有拷贝。
a,b中第二层的列表地址一样
print(id(a[0]))
print(id(b[0]))
..
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
列表切片是浅拷贝
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!