欢迎访问Python每天3分钟系列。
每天早上8点半,花3分钟时间,学习或温习一个Python知识点。
今天是第004篇:理解Python的切片(slice)技术
Python的切片可以说是非常好用又博大精深。
它的应用也及其广泛:列表,元祖等自带数据结构,numpy,pandas等热门框架等。
我们可以大胆的说:切片是最常用的Python知识点之一!
基本用法
假设a是一个列表,start和stop分别代表下标的开始和结束,切片的基本写法是这样的:
a[start:stop] # 从start到stop-1,stop不包含在里面
a[start:] # 从start到最后所有
a[:stop] # 从开头到stop-1
a[:] # 从头到尾,也就是复制整个列表,这是复制列表的最简单写法
举几个例子
a = [1,2,3,4,5,6,7,8]
a[2:5] # [3,4,5]
a[3:] # [4,5,6,7,8]
a[:4] # [1,2,3,4]
a[:] # [1,2,3,4,5,6,7,8]
start和stop都可以是负数
列表的下标一般是从0开始的,但是也可以用负数表示,看这个例子:
+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
0 1 2 3 4 5
-6 -5 -4 -3 -2 -1
切片用负数的例子:
a = [1,2,3,4,5,6,7,8]
a[-1] # 最后一个元素: 8
a[-2:] # 最后两个元素,从倒数第二个到最后:[7,8]
a[:-2] # 从头到最后第3个:[1,2,3,4,5,6]
扩展用法 – step
如果我们想要每3个取一个,这样也不难,用step,一般写法是这样的:
a[start:stop:step] # 从start到stop,但每step个取一个
前面我们没用step,就相当于step默认是1。
举个用step的例子:
a = list(range(1, 200))
a[0:101:3] # 结果是1,4,7...100
同样的step也可以是负数:
a = [1,2,3,4,5,6,7,8]
a[::-1] # 所有元素,从后往前。相当于给数组做了反转: [8,7,6,5,4,3,2,1]
a[1::-1] # [2,1]
a[:-3:-1] # [8,7]
a[-3::-1] # [6,5,4,3,2,1]
如开头所说,切片不只是用在列表中,可以用在很多地方。切片是学习Python必须掌握的知识。有问题给我留言。
原文链接:https://www.zsiss.com/4891.html,转载请注明出处。
请先
!