前言
最近在做leetCode题目的时候,发现了一个python很有趣的切片用法,发现效率真的挺高的,所以深入的了解下,真的很好用,就来分享下。
简介
python的切片用法主要针对python可迭代的列表和字符串,比如元组、列表、字符串等,用法是[start:end:step]
start-开始的位置
end-结束的位置
step-步长
下面就举例子说明下,这个切片的用法。
首先设定一个list = [1,2,3,4,5],列表默认的开始位置是0
[用法]
一、[start:end]
[start:end]默认的step是1,假如我要切片第1个元素到第2个元素,那么应该是list[0:2],取开始位置和结束位置之间的值,结果如下:
二、[start:end:step]
第1种用法是默认step是1,但是如果我不是默认的step呢,效果又是如何呢?请看list[0:4:2],结果如下:
在第1个位置和最后1个位置之间,每步长2区1个值,最后是[1,3]
三、[:end]
缺省用法,缺了start开始位置,只写end,假如我取list[:3],取的值又是如何呢?请看
默认开始位置是0,3作为结束的位置
三、[start:]
还是缺省用法, 缺了结束的位置,假如我取list[1:],取得值又是如何的呢?请看
默认从开始位置切到最后的所有元素
上面的都是start\end\step都是大于0的用法,如果是小于0又是一个怎么样的结果呢?
比如start和end都是小于0,例如list[-1:],结果:
取的是倒数第1个值
有列如list[:-2]
取的是第1个位置到倒数第2个数之间的数值
还有1种用法,假如step小于0呢?又是一个怎么样的状况呢?
比如list[::-1]
倒序复制了个列表,取反。
更多的用法,还待研究!!