Python切片

在Python中,切片是对序列型对象的一种高级索引方法。普通索引只取出序列中一个下标对应的元素,而切片取出序列中一个范围对应的元素,这里的范围不是狭义上的连续片段。

start_index: 切片切割开始的位置

end_index:切片切割结束的位置,不包含end_index处的元素

step:步长,默认值是1,也可以取负值(从右往左的切割)

以列表 a = [0,1,2,3,4,5,6,7,8,9]为例

1、切割单个值

>>> a[0]
0
>>> a[1]
1
>>> a[-1]
9

2、切割完整的对象

>>> 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_index和end_index全为正

>>> a[1:6] #从1切割到6(不包含6)step=1
[1, 2, 3, 4, 5]
>>> a[1:6:-1] # step=-1 表示的从右往左 start_index=1和end_index=6 表示从左往右,矛盾
了,所以返回的是空
[]
>>> a[6:1] # step = 1 表示从左往右,start_index=6 和end_index=1 表示从右往左
[]
>>> a[:6] #start_index = 0 end_index=6 (不包含6)
[0, 1, 2, 3, 4, 5]
>>> a[:6:-1] # step = -1 表示从右往左
[9, 8, 7]
>>> a[6:]
[6, 7, 8, 9]
>>> a[6::-1]
[6, 5, 4, 3, 2, 1, 0]

4、start_index和end_index全为负

>>> a[-1:-6] # step=1 从左往右 start_index=-1 和end_index=-6 从右往左
[]
>>> a[-1:-6:-1] # start_index=-1 和end_index=-6(不包含-6) 从右往左 step = -1
[9, 8, 7, 6, 5]
>>> a[-6:-1] # step=1 从左往右 start_index=-6 和end_index=-1
[4, 5, 6, 7, 8]
>>> a[:-6]
[0, 1, 2, 3]
>>> 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_index和end_index 正负混合

>>> a[1:-6] #step = 1 从左往右 start_index=1 和end_index=-6 从左往右
[1, 2, 3]
>>> a[1:-6:-1]
[]
>>> a[-1:6]
[]
>>> a[-1:6:-1]
[9, 8, 7]

6、连续切片

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

7、三个参数可以是表达式

>>> a[3//2:3+2:2*1]
[1, 3]

8、其他对象的切片

>>> t
(1, 2, 3, 4)
>>> t[1:3]
(2, 3)
>>> s = "ABCDSDE"
>>> s[::2]
'ACSE'
>>> "ABCDS"[1:3]
'BC'
>>> for i in range(0,100)[4:20][5:7]:
... print(i)
...
9
1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值