Python每天3分钟 – #004理解Python的切片(slice)技术

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

原文链接:http://www.zsiss.com/4891.html,转载请注明出处。

0

评论0

请先

爱分享推出ChatGPT国内镜像,无需魔法直接用!写文章,写代码,做PPT,做网站原创软文效果好到爆炸 https://chat.gcrup.com

社交账号快速登录