目录
一.切片的基础用法
二.切片是一个伪独立的对象
三.切片可作为占位符
众所周知,我们可以通过索引来查找序列类型(字符串,列表,元组...)中的单个元素。而切片是一种截取索引片段的技术,借助切片技术,我们可以十分灵活的处理序列类型的对象。
切片并非列表的专属操作,但是因为列表最具代表性,下面主要以列表来举例。
一.切片的基础用法
切片的书写形式:[i : i + n : m]。
其中i为切片的起始索引,为列表首位时可以忽略。i + n是列表的结束位置,为列表末位时可以忽略。索引范围为[i, i+n),m可以不提供,默认值时1,不允许为0。当m为负数时,列表翻转。
注意:这些值都可以大于列表的长度,不会报越界。但是会发生截断,就是仍然按照范围查找,但是超出序列数据范围部分,全部被遐想成空值,最终获取到空值进行忽略即可。
- 表示整个列表
- 步长为正,从列表前往后计算步长。
- 当步长为负数,是从列表后往前计算步长。注意范围索引的最小值和最大值也需要倒转。
-
切片的步长不能为0
- 按照步长方向(正数正序,负数倒序),当索引范围最大值小于最小值时,返回的片段为空。
二.切片是一个伪独立的对象
切片的返回结果是一个新的独立的序列。以列表为例,列表切片后得到的还是一个新的列表,占用新的内存地址。
但是切片只是浅拷贝,它拷贝的是原列表中的引用,所以当存在可变长对象时,新列表受制于原列表。不是可变长对象,拷贝的是值,是可变长列表,是该可变元素的引用,共用一个空间。
三.切片可作为占位符
切片可以作为独立对象被取出原序列,也可以留在原序列,作为一种占位符。
- 切片作为占位符是一个空列表,可以实现列表拼接的作用。
arr[1,2,3,4]
#x下面表示的都是一个空列表
arr[0:0]==arr[len(arr):]==len[X:X]
- 切片作为占位符不是一个空列表,可以实现替换,删除元素。
替换元素是先将切片起始索引到末尾索引位置元素先删除,再将新元素插入。
切片占位符可以带步长,从而实现连续跨越或删除的效果,需要注意的是,这种用法只能支持等长替换。文章来源:https://www.toymoban.com/news/detail-706861.html
文章来源地址https://www.toymoban.com/news/detail-706861.html
到了这里,关于python中的切片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!