python二级操作题_python二级考试之彻底搞懂切片操作

切片(Slice)是一个取部分元素的操作。可以操作list、tuple、字符串。利用切片很多地方循环就不再需要了。Python的切片非常灵活,一行代码就可以实现很多行循环才能完成的操作。切片在考试中肯定会出现。

通常一个切片操作要提供三个参数 [start_index:  stop_index:  step] :

start_index是切片的起始位置

stop_index是切片的结束位置(不包括)

step可以不提供,默认值是1,步长值不能为0,不然会报错ValueError。

首先先看几个栗子:

解析:这题是从序号1开始,到4结束,每次间隔的步长是2,list的切片中序号0开始,默认切片的起始位置的元素gold一定会被取到,然后间隔了2个步长,取到序号是3的元素brown。注意切片是顾头不顾尾的。

解析:这题是从序号4开始,切下去,直到末尾结束,因此结果是D

解析:此题切片的起始位置和结束位置都是空缺的,python中步进为正,从左往右取,步进为负,从右往左取,实现倒序。

解析:这题是从序号1开始,到10结束,每次间隔的步长是3,字符串的切片中序号0开始,默认切片的起始位置的元素b一定会被取到,然后间隔了3个步长,取到序号是3的元素e,再间隔3个步长取到h。最终结果是beh。注意切片是顾头不顾尾的。最后是一次间隔3个步长,从h到k,k是序号10,根据顾头不顾尾的原则,切片是不取最后一个k的。切记。

解析:切片的起始位置比结束位置还要大,是取不到值的。起始位置-5,是从右向左数5个步长,步长是1,即3,结束位置是从右向左数3个步长,即5,根据切片顾头不顾尾原则,结束位置只能取到4,结果未[3,4]

Python中符合切片并且常用的有:列表,字符串,元组。

下面那列表来说明,其他的也是一样的。

格式:[开头:结束:步长]

开头:当步长>0时,不写默认0。当步长<0时,不写默认-1

结束:当步长>0时,不写默认列表长度加一。当步长<0时,不写默认负的列表长度减一

步长:默认1,>0 是从左往右走,<0是从右往左走(▽)

例如:

>>>a_list = [1, 2, 3, 4, 5]>>>b_list = a_list[1:4]>>>b_list[2, 3, 4]

可以发现,开始b_list是从第二位开始的,因为列表的引索是从0开始,并且结束的引索是不包含的

可以理解为 切片的结果是 >= 开头 and < 结束

对于步长

>>>a_list = [1, 2, 3, 4, 5, 6, 7]>>>b_list = a_list[1:5:2]>>>b_list[2, 4]

因为a_list[1:5]的结果是[2, 3, 4, 5],又因为是步长为2所以取[2, 4]

如果要取全部的内容的话,开始和结束就不用填

如下

>>>a_list = [1, 2, 3, 4, 5, 6, 7]>>>b_list = a_list[:]>>>b_list[1, 2, 3, 4, 5, 6, 7]>>>b_list = a_list[::2]>>>b_list[1, 3, 5, 7]

现在来说一下当步长小于0的时候的情况

>>>a_list = [1, 2, 3, 4, 5, 6, 7]>>>b_list = a_list[-1:-8:-1]>>>b_list[7, 6, 5, 4, 3, 2, 1]>>>b_list = a_list[::-1][7, 6, 5, 4, 3, 2, 1]

结合上面步长>0的介绍,也就差不多理解了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值