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)

在这里插入图片描述

发布了26 篇原创文章 · 获赞 5 · 访问量 777

猜你喜欢

转载自blog.csdn.net/weixin_44730235/article/details/105075940