s1 = s.copy()s1[0]='s1's[2][0] = 2s1[2][1]=4输出:['s', 'sname', [2, 4]]['s1', 'sname', [2, 4]]
浅拷贝只拷贝第一层 即 s1拷贝生成新的空间存储 s sname 修改不会影响s 在s1中存储 [1,2] 为地址指向
浅拷贝和A=B不同
A=123B=AB=456print(A)print(B)输出:123456
s = ['s', 'sname', [1, 2]]s1 = ss1[0]='s1's[2][0] = 2s1[2][1]=4输出:['s1', 'sname', [2, 4]]['s1', 'sname', [2, 4]]当A=B时 只是简单数字字符串时 B指向A指向的地址 当B改掉后 B新开辟内存空间存储新的值当s=s1 列表等复杂数据类型 指向的是一个整体的地址 共享一块内存空间不会开辟新的内存空间
import copys = ['s', 'sname', [1, 2]]s1 = ss1[0]='s1's[2][0] = 2s1[2][1]=4s3= copy.deepcopy(s)s3[0] = 's3's3[2][0]=6print(s)print(s1)print(s3)输出:['s1', 'sname', [2, 4]]['s1', 'sname', [2, 4]]['s3', 'sname', [6, 4]]
#深层拷贝-----------------import copycopy.deepcopy(s)-----------------