python中的切片

本文主要介绍Python中切片技术,它可截取索引片段,灵活处理序列类型对象。阐述了切片基础用法,如书写形式、索引规则等;指出切片是伪独立对象,返回新序列但可能受原列表影响;还说明了切片可作占位符,实现拼接、替换、删除元素等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一.切片的基础用法

二.切片是一个伪独立的对象

 三.切片可作为占位符


        众所周知,我们可以通过索引来查找序列类型(字符串,列表,元组...)中的单个元素。而切片是一种截取索引片段的技术,借助切片技术,我们可以十分灵活的处理序列类型的对象。

        切片并非列表的专属操作,但是因为列表最具代表性,下面主要以列表来举例。

一.切片的基础用法

切片的书写形式:[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]

  •  切片作为占位符不是一个空列表,可以实现替换,删除元素。

        替换元素是先将切片起始索引到末尾索引位置元素先删除,再将新元素插入。

         切片占位符可以带步长,从而实现连续跨越或删除的效果,需要注意的是,这种用法只能支持等长替换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值