python直接赋值、深浅拷贝

引入了一个概念,内存地址

直接赋值 : 将lst1赋值给lst2,其实是将lst1指定的存储数据的内存地址赋值给lst2。
在这里插入图片描述
在这里插入图片描述
所以lst1添加一个元素后,lst2也会增加一个,因为内存地址没有变,指向的是同一个地址。

浅拷贝(copy): 创建一个新对象,内存地址改变

在这里插入图片描述

lst1 = ['王大拿','刘能','赵四']
lst2 = lst1.copy()  #lst2和lst1不是一个对象了,即内存地址不一样
#lst2 = lst1[:] #跟上面操作一样
lst1.append('谢大脚')
print(lst1)
print(lst2)

在这里插入图片描述

深拷贝:

在这里插入图片描述

由上所述,lst1中又套了一个列表,然后在这个列表中在添加喜剧这个元素,本身lst2已经浅拷贝了lst1,也受到了影响。此时应用深拷贝

需要引入copy库

import copy
lst1 = ['超人','复联','三体',['科幻','恐怖']]
lst2 = copy.deepcopy(lst1)
lst1[3].append('喜剧')
print(lst1)
print(lst2)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值