您的位置:首页 > 编程语言 > Python开发

python的赋值、深拷贝与浅拷贝

2019-06-11 15:56 169 查看

#1、赋值:只拷贝了引用,原数据改变,被拷贝的所有数据也会跟着改变
#2、浅拷贝:只拷贝第一层,不拷贝子对象,所以原数据改变时,第一层数据不会改变,子对象的数据会改变
#3、深拷贝:拷贝所有的数据,所以原数据改变时,拷贝后的数据都不会改变

1、赋值

a=[1,2,3,6,45,[12,56,69]]
b=a
a.append('a')
a[5].append('b')
print(a)
print(b)
print('*****************************这是一段赋值******************************')

输出结果:

E:\install\python3.7.3\python.exe F:/pycharm_workspace/day01/copydemo.py
[1, 2, 3, 6, 45, [12, 56, 69, 'b'], 'a']
[1, 2, 3, 6, 45, [12, 56, 69, 'b'], 'a']

Process finished with exit code 0

2、浅拷贝

#2、浅拷贝
a=[1,2,3,6,45,[12,56,69]]
b=copy.copy(a)
a.append('a')
a[5].append('b')
print(a)
print(b)
print('*****************************这是一段浅拷贝******************************')

输出结果:E:\install\python3.7.3\python.exe F:/pycharm_workspace/day01/copydemo.py
[1, 2, 3, 6, 45, [12, 56, 69, 'b'], 'a']
[1, 2, 3, 6, 45, [12, 56, 69, 'b']]
*****************************这是一段浅拷贝******************************

3、深拷贝

##深拷贝
a=[1,2,3,6,45,[12,56,69]]
b=copy.deepcopy(a)
a.append('a')
a[5].append('b')
print(a)
print(b)
print('*****************************这是一段深拷贝******************************')

输出结果:E:\install\python3.7.3\python.exe F:/pycharm_workspace/day01/copydemo.py
[1, 2, 3, 6, 45, [12, 56, 69, 'b'], 'a']
[1, 2, 3, 6, 45, [12, 56, 69]]
*****************************这是一段深拷贝******************************

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: