栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python切片

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python切片

切片:

大致意思就是从一个集合里面切出一块出来

在python中切片是用来切割可迭代对象(容器)

完整的切片包含:

三个参数和两个冒号

例如:

a[start:end:step]

解释:

start  --------  切片起始的位置,如果没有值就从头开始

end  ----------  切片结束的位置,但是不包含  end  在内,属于(前闭后开),如果没有值就表示切割到结束为止

step  ----------  步长,默认值为1,如果是正数的情况,则表示为从左往右,如果是负数的情况,则表示从右往左

例如:

a[start:]:表示从start开始切割,到结束为止,从左往右
a[:end]:表示从开始切割,到end为止,但是不包含end,从左往右
a[start:end]:表示从start开始,到end结束,但是不包含end,从左往右
a[start:end:step]:表示从start开始,到end结束,但是不包含end,step为正从左往右,负从右往
左

例题:

a = [0,1,2,3,4,5,6,7,8,9]

1、切割单个值

>>> a = [0,1,2,3,4,5,6,7,8,9]
>>> a[1]
1
>>> a[5]
5
>>> a[9]
9

2、切割完整对象

>>> print(a)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[::]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

3、start  和  end全部取正数的情况

>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[1:6]
[1, 2, 3, 4, 5]
>>> a[2:5]
[2, 3, 4]
>>> a[1:6:-1]
[]
>>> a[6:1:-1]
[6, 5, 4, 3, 2]
>>> a[:6]
[0, 1, 2, 3, 4, 5]
>>> a[:6:-1]
[9, 8, 7]
>>> a[6:]
[6, 7, 8, 9]
>>> a[6::-1]
[6, 5, 4, 3, 2, 1, 0]

4、start  和  end全部取负数的情况

>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[:-6]
[0, 1, 2, 3]
>>> a[-1:-6]
[]
>>> a[-1:-6:-1]
[9, 8, 7, 6, 5]
>>> a[:-6:-1]
[9, 8, 7, 6, 5]
>>> a[-6:]
[4, 5, 6, 7, 8, 9]
>>> a[-6::-1]
[4, 3, 2, 1, 0]

5、start  和  end正负混合的情况

>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[-1:6]
[]
>>> a[1:-6]
[1, 2, 3]
>>> a[1:-6:-1]
[]
>>> a[-1:6:-1]
[9, 8, 7]
>>> a[-1:5:-1]
[9, 8, 7, 6]

6、连续的切片操作

>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[:8][2:5][-1:]
[4]
>>> a[:8][1:6][-1:]
[5]

解释:

a[:8] ---- [0,1,2,3,4,5,6,7]
[0,1,2,3,4,5,6,7][2:5]----[2,3,4]
[2,3,4][-1:] ----[4]

7、切片中的三个参数为表达式

>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[1+3:2%3:7%2]
[]
>>> a[1+2:2*3:7%2]
[3, 4, 5]

8、切片可以操作其他的对象

>>> b = (1,2,3,4,5,6)
>>> b[2:5]
(3, 4, 5)
>>> c = "ABCDEFG"
>>> c[3:6]
'DEF'
>>> for i in range(0,100):
...     print(i)
...
>>> for i in range(0,100)[2::3][-10:]:
...     print(i)
...
71
74
77
80
83
86
89
92
95
98

总结:

1、如果进行切片的时候,超过了下标不会报错

2、如果切片操作的时候方向相矛盾的话,不会报错,返回为空

3、在python中进行反向输出列表:

第一种:循环

第二种:[::-1]

第三种:reverse()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/948493.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号