知行编程网知行编程网  2022-10-13 10:30 知行编程网 隐藏边栏  5 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python中切片的浅拷贝探究的相关知识,包括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中切片的浅拷贝探究,相信大家对切片的复制方式已经有所明确。对于文章内容有不了解的地方,可以先复习一下基本概念。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享