Python之浅copy与深copy

一、列表使用=赋值

list2=list1,并无任何赋值的作用,list2仅复制了list1的内存地址,list1有任何修改都会体现在list2中

list_1 = ["a","b",["qqq","www"],"c","d"]
list_2 = list_1
list_1[1] = "修改后"
print("原列表:",list_1)
print("赋值的列表2:",list_2)
原列表: ['a', '修改后', ['qqq', 'www'], 'c', 'd']
赋值的列表2: ['a', '修改后', ['qqq', 'www'], 'c', 'd']

二、浅copy

浅copy只复制第一层(列表嵌套列表的类型,如:[“a”,“b”,[“qqq”,“www”],“c”,“d”]),第二层只复制内存地址,代表方法:
1.list中的copy方法
2.copy中的copy方法

list_1 = ["a","b",["qqq","www"],"c","d"]
list_2=list_1.copy()
list_1[1] = "修改后1"
list_1[2][1] = "修改后2"
print("原列表:",list_1)
print("赋值的列表2:",list_2)
list_1 = ["a","b",["qqq","www"],"c","d"]
list_2=copy.copy(list_1)
list_1[1] = "修改后1"
list_1[2][1] = "修改后2"
print("原列表:",list_1)
print("列表2:",list_2)
原列表: ['a', '修改后1', ['qqq', '修改后2'], 'c', 'd']
列表2: ['a', 'b', ['qqq', '修改后2'], 'c', 'd']

三、深copy

深copy为完全复制一份数据,并重新开拓一份内存地址,代表方法:
1.copy中的deepcopy方法

list_1 = ["a","b",["qqq","www"],"c","d"]
list_2=copy.deepcopy(list_1)
list_1[1] = "修改后1"
list_1[2][1] = "修改后2"
print("原列表:",list_1)
print("列表2:",list_2)
原列表: ['a', '修改后1', ['qqq', '修改后2'], 'c', 'd']
列表2: ['a', 'b', ['qqq', 'www'], 'c', 'd']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值