s1 = s.copy()
s1[0]='s1'
s[2][0] = 2
s1[2][1]=4
输出:
['s', 'sname', [2, 4]]
['s1', 'sname', [2, 4]]

浅拷贝只拷贝第一层  即  s1拷贝生成新的空间存储  s  sname 修改不会影响s   在s1中存储  [1,2] 为地址指向


浅拷贝和A=B不同

A=123
B=A
B=456
print(A)
print(B)
输出:
123
456


s = ['s', 'sname', [1, 2]]
s1 = s
s1[0]='s1'
s[2][0] = 2
s1[2][1]=4
输出:
['s1', 'sname', [2, 4]]
['s1', 'sname', [2, 4]]

当A=B时  只是简单数字字符串时  B指向A指向的地址 当B改掉后 B新开辟内存空间存储新的值

当s=s1   列表等复杂数据类型   指向的是一个整体的地址 共享一块内存空间不会开辟新的内存空间


Python 深浅拷贝_深浅拷贝


Python 深浅拷贝_深浅拷贝_02


import 
copys = ['s', 'sname', [1, 2]]
s1 = ss1[0]='s1's[2][0] = 2
s1[2][1]=4
s3= copy.deepcopy(s)
s3[0] = 's3'
s3[2][0]=6
print(s)
print(s1)
print(s3)
输出:
['s1', 'sname', [2, 4]]
['s1', 'sname', [2, 4]]
['s3', 'sname', [6, 4]]
#深层拷贝
-----------------
import copy
copy.deepcopy(s)
-----------------