深浅拷贝
赋值运算
l1 = [1,2,3,['张三','李四']] l2 = l1 l1[0] = 111 print(l1) # [111, 2, 3, ['张三','李四']] print(l2) # [111, 2, 3, ['张三','李四']] l1[3][0] = '王五' print(l1) # [111, 2, 3, ['王五', '李四']] print(l2) # [111, 2, 3, ['王五', '李四']]
在赋值中,l1和l2指向的是同一个内存地址,所以是完全一样的;指向同一个列表时任何一个变量对列表进行修改,剩下的那个变量在使用列表时,获取到的就是改变之后的列表
浅拷贝
copy,只是拷贝了原数据的第一层元素
深拷贝
deepcopy,可变的数据类型重新开辟一块空间;不可变的数据类型共用之前的数据