1、深拷贝 --> 克隆一份,修改拷贝后的内容不对原对象内容产生影响
拷贝后修改序列中元素内容,注意:被修改的元素不能为一个序列中的某个值
a=[["北京多测师","成都多测师"],"上海多测师","深圳多测师","广州多测师"]
b=a.copy()
b[1]="天津多测师"
print(a)
print(b)
#结果如下
[['北京多测师','成都多测师'],'上海多测师','深圳多测师','广州多测师']#列表a中的"上海多测师"未修改为"天津多测师"
[['北京多测师','成都多测师'],'天津多测师','深圳多测师','广州多测师']#列表b中的"上海多测师"修改为"天津多测师"
copy 模块中的deepcopy()
importcopy
a=[["北京多测师","成都多测师"],"上海多测师","深圳多测师","广州多测师"]
b=copy.deepcopy(a)
b[0][0]="天津多测师"
print(a)
print(b)
#结果如下
[['北京多测师','成都多测师'],'上海多测师','深圳多测师','广州多测师']#原列表a未发生改变
[['天津多测师','成都多测师'],'上海多测师','深圳多测师','广州多测师']#列表b中的第一个元素中的"北京多测师"修改为"天津多测师"
2、浅拷贝 -->修改拷贝后的内容原对象内容随之修改
a=[["北京多测师","成都多测师"],"上海多测师","深圳多测师","广州多测师"]
b=a.copy()
b[0][0]="天津多测师"
print(a)
print(b)
#结果如下
[['天津多测师','成都多测师'],'上海多测师','深圳多测师','广州多测师']
[['天津多测师','成都多测师'],'上海多测师','深圳多测师','广州多测师']#列表a和b中的"北京多测师"都修改为"天津多测师"
copy 模块中的 copy()
importcopy
a=[["北京多测师","成都多测师"],"上海多测师","深圳多测师","广州多测师"]
b=copy.copy(a)
b[0][0]="天津多测师"
print(a)
print(b)
#结果如下
[['天津多测师','成都多测师'],'上海多测师','深圳多测师','广州多测师']
[['天津多测师','成都多测师'],'上海多测师','深圳多测师','广州多测师']#列表a和b中的"北京多测师"都修改为"天津多测师"
3、实例讲解
#现有老公张三有额度为200000元的信用卡,卡号为:,已使用的额度:15000
#现需要实现张三的老婆Andy也需要绑定这张信用卡进行付款
zs_card=["张三",,[200000,15000]]#张三名下的信用卡
ad_card=zs_card.copy()#妻子Andy账户也开了一张绑定张三信用卡的信用卡,且修改姓名和卡号
ad_card[0]="Andy"
ad_card[1]=
print(ad_card)#打印出Andy的信用卡信息['Andy',,[200000,15000]]
zs_card[2][1]+=2000#此时张三使用了信用卡且刷了2000元
print(ad_card)#此时Andy的信用卡额度也随之变化
#运行结果如下
['Andy',,[200000,15000]]
['Andy',,[200000,17000]]#张三刷卡后,Andy所持的信用卡已使用的额度随之增长