深拷贝浅拷贝相关问题

python深拷贝浅拷贝相关问题

  1. 数字在[-5,257)之间
a=1
b=1
print(a is b)#True指向地址相同
print(a==b)#Ture值相同
  1. 列表
a=[1,2,3]
b=a#指向相同的地址即为浅拷贝
b[0]=4
print(a,b)#输出都为[4,2,3]

  1. 深拷贝
import copy
a=[1,2,3]
b=copy.deepcopy(a)#指向不同地址值相同
b[0]=4
print(a,b)#a未被修改
  1. 列表中的深拷贝与浅拷贝(元组也是一样)
import copy
a=[1,2,3]
b=[4,5,6]
c=[a,b]
d=c
e=copy.deepcopy(c)
a[0]=0
print(d)#[[0,2,3],[4,5,6]]
print(e)#[[1,2,3],[4,5,6]]
  1. copy与deepcopy的区别
import copy
a=[1,2,3]
b=[4,5,6]
c=[a,b]
d=c
e=copy.copy(c)
a[0]=0
print(d)#[[0,2,3],[4,5,6]]
print(e)#[[0,2,3],[4,5,6]]
c.append('c')
print(d)#[[0,2,3],[4,5,6],'c']
print(e)#[[0,2,3],[4,5,6]]

copy只拷贝一层的引用

  1. 元组使用copy相当于“=”

因为元组是不可变类型,可变类型使用copy会拷贝一层引用

import copy
a=[1,2,3]
b=[4,5,6]
c=(a,b)
d=c
e=copy.copy(c)
a[0]=0
print(d)#([0,2,3],[4,5,6])
print(e)#([0,2,3],[4,5,6])
print(id(d))
print(id(e))#地址相同	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值