python怎么设置颜色深浅变化_python开发之路之深浅拷贝

浅拷贝

实例一:

a = [1,'alex','alvin']

b = a[:]

print(a)

print(b)

打印结果如下:

D:\python3.5\python.exe D:/pycharm/data/第一周/day3/深浅拷贝.py

[1, 'alex', 'alvin']

[1, 'alex', 'alvin']

这个时候对b中的'1'进行修改,观察a列表里面的值是否会发生变化?

b[1] = 'zhangjunchao' #修改1的值为zhangjunchao

print(a)

print(b)

D:\python3.5\python.exe D:/pycharm/data/第一周/day3/深浅拷贝.py

[1, 'alex', 'alvin'] #a没有发生变化

[1, 'zhangjunchao', 'alvin'] #b发生变化

实例二:

a = [[1,2],'alex','alvin']

b= a.copy()

print(a)

print(b)

打印结果如下:

D:\python3.5\python.exe D:/pycharm/data/第一周/day3/深浅拷贝.py

[[1, 2], 'alex', 'alvin']

[[1, 2], 'alex', 'alvin']

这个时候对b中的'1'进行修改,观察a列表里面的值是否会发生变化?

b[0][0] = 'zhangjunchao'

print(a)

print(b)

打印结果如下:

D:\python3.5\python.exe D:/pycharm/data/第一周/day3/深浅拷贝.py

[['zhangjunchao', 2], 'alex', 'alvin']

[['zhangjunchao', 2], 'alex', 'alvin']

说明:这个时候发现a和b中的嵌套列表的值都发生了变化。那么这是为什么呢,请分析浅拷贝的原理图。

深拷贝(deepcopy)

实例一:

import copy

a = ['zhangjunchao',1000,[20000,9000]]

b = copy.deepcopy(a) #b进行一次深拷贝

print(a)

print(b)

D:\python3.5\python.exe D:/pycharm/data/第一周/day3/深浅拷贝.py

['zhangjunchao', 1000, [20000, 9000]]

['zhangjunchao', 1000, [20000, 9000]] #拷贝过后发现值都一样

那么,这个时候如果对b小列表的数据进行修改,比较一下a和b这个时候列表的变化?

b[2][1] = 3000

print(a)

print(b)

打印结果如下:

D:\python3.5\python.exe D:/pycharm/data/第一周/day3/深浅拷贝.py

['zhangjunchao', 1000, [20000, 9000]]

['zhangjunchao', 1000, [20000, 3000]]

这个时候发现,b列表的的小列表的值发生了变化,而a没有,这就是深拷贝。也就是说深拷贝是全部拷贝,指针都是指向内存寻址空间的,不是共享空间,所以b修改了,不会影响a的指针指向。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值