欢迎访问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[:]           # 从头到尾,也就是复制整个列表,这是复制列表的最简单写法

举几个例子

= [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

切片用负数的例子:

= [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的例子:

= list(range(1, 200))
a[0:101:3] # 结果是1,4,7...100

同样的step也可以是负数:

= [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必须掌握的知识。有问题给我留言。

声明:本网站资源来源于网络收集,如有侵权,请联系站长进行删除处理。 分享目的仅供大家学习和交流,请不要用于商业用途,否则后果自负。本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解。本站资源售价只是赞助,收取费用仅维持本站的日常运营所需。反馈邮箱:1159995880@qq.com