深浅拷贝

深浅拷贝

可变类型和比可变类型

值改变,id不变,称为可变类型

值改变,id也改变的称为不可变类型

拷贝

仅加一个变量的引用指向

l1 = ['a', 'b', 'c', ['d', 'e', 'f']]
l2 = l1

l1.append('g')

print('l1',l1)
print('l2',l2)
l1 ['a', 'b', 'c', ['d', 'e', 'f'], 'g']
l2 ['a', 'b', 'c', ['d', 'e', 'f'], 'g']
浅拷贝

如果原数据中含有引用类型,引用类型改变,拷贝数据也随之发生改变

import copy

l1 = ['a', 'b', 'c', ['d', 'e', 'f']]
l2 = copy.copy(l1)

l1.append('g')

print('l1',l1)
print('l2',l2)

l1[3].append('g')

print('l1',l1)
print('l2',l2)
l1 ['a', 'b', 'c', ['d', 'e', 'f'], 'g']
l2 ['a', 'b', 'c', ['d', 'e', 'f']]
l1 ['a', 'b', 'c', ['d', 'e', 'f', 'g'], 'g']
l2 ['a', 'b', 'c', ['d', 'e', 'f', 'g']]
深拷贝

相当于另开辟了一个新的内存地址,拷贝里所有内容都不会因为原变量改变而改变

import copy

l1 = ['a', 'b', 'c', ['d', 'e', 'f']]
l2 = copy.deepcopy(l1)

l1.append('g')

print('l1',l1)
print('l2',l2)

l1[3].append('g')

print('l1',l1)
print('l2',l2)
l1 ['a', 'b', 'c', ['d', 'e', 'f'], 'g']
l2 ['a', 'b', 'c', ['d', 'e', 'f']]
l1 ['a', 'b', 'c', ['d', 'e', 'f', 'g'], 'g']
l2 ['a', 'b', 'c', ['d', 'e', 'f']]

转载于:https://www.cnblogs.com/agsol/p/11528334.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值