导语:
本文主要介绍了关于python中切片的浅拷贝探究的相关知识,包括python赋值和浅拷贝,以及python切片运算符这些编程知识,希望对大家有参考作用。
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
1、浅拷贝说明
浅拷贝,最外层的对象本身被拷贝,内部的元素只是一个引用的拷贝。即复制对象一次,但我不复制对象中引用的其他对象。
2、切片拷贝实例
切片操作的结果是一个新的独立序列。以列表为例,列表切片后得到一个列表,占用一个新的内存地址。
当取出切片的结果时,它是一个独立对象,因此,可以将其用于赋值操作,也可以用于其它传递值的场景。但是,切片只是浅拷贝,
它拷贝的是原列表中元素的引用
,所以,当存在变长对象的元素时,新列表将受制于原列表。
li = [1, 2, 3, 4]
ls = li[::]
li == ls # True
id(li) == id(ls) # False
li.append(li[2:4]) # [1, 2, 3, 4, [3, 4]]
ls.extend(ls[2:4]) # [1, 2, 3, 4, 3, 4]
# 下例等价于判断li长度是否大于8
if(li[8:]):
print("not empty")
else:
print("empty")
# 切片列表受制于原列表
lo = [1,[1,1],2,3]
lp = lo[:2] # [1, [1, 1]]
lo[1].append(1) # [1, [1, 1, 1], 2, 3]
lp # [1, [1, 1, 1]]
既然是可见的,就取出切片结果,可以作为一个独立的对象,还要注意是否取出变长对象的元素。
以上就是
python中切片的浅拷贝探究,相信大家对切片的复制方式已经有所明确。对于文章内容有不了解的地方,可以先复习一下基本概念。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 用PyCharm配置PyQt5:ui文件到py文件的一键实现10/12
- ♥ 如何阅读python文档10/21
- ♥ python中的模块和类有什么区别11/06
- ♥ Python如何输出图片而不保存10/28
- ♥ python GIL锁底层原理研究12/01
- ♥ python 64位系统如何下载mysql?12/29
内容反馈