消消乐的Python第三课目录
转眼一个星期又过去啦,又到了总结一个星期的知识啦!!!快来学习呀~~
一、切片操作
1.浅复制/浅拷贝
- 浅拷贝会创建新对象,其内容是原对象的引用。
- 切片操作返回的是列表元素的浅拷贝:生成一个新的列表,并且把原列表中所有元素的引用都复制到新列表中。
- 如果原列表只有不可变类型的数据,一般没有问题。但如果原列表中包含列表之类的可变数据,由于浅复制时只是把子列表的引用复制到新列表中,这样修改其中任何一个都会影响到另外一个。
2.切片操作
>>>aList = [3,5,7]
>>>bList = aList[::] #切片,浅复制
>>>aList == bList #两个列表的元素完全相同
True
>>>aList is bList #但不是同一个地址
False
>>>id(aList) == id(bList) # 内存地址不一样
False
>>>bList[1] = 8 #修改其中一个不会影响另外一个
>>>bList
[3,8,7]
>>>aList
[3,5,7]
3.切片在赋值操作中的应用
(1)在右侧的列表使用切片
>>>alist = [123,"hello",["python","C++"]]
>>>blist = alist[:] #切片,浅拷贝
>>>id(alist) #两者的内存地址不相同
4425805960
>>>id(blist)
4425921480
>>>blist #两者的元素完全相同
[123,'hello',['python','C++']]
>>>alist is blist #不是同一个对象
False
>>>alist == blist #两个列表的元素完全相同
True
>>>blist[0]