python切片操作

python 中切片是用来切割可迭代对象(容器)
一个完整的切片是包含三个参数和两个冒号
start: 切片的起始位置,如果没有值的话从头开始
end :切片的结束位置,但是不包含 end (前闭后开),如果没有值的话表示切割到结束为止
step :步长,默认取值为 1 ,如果为正数的情况表示从左往右,如果为负数表示从右往左
object[start:]: 表示从 start 开始切割到结束为止,从左往右
obeject[:end] :表示从开始切割到 end 为止,但是不包含 end, 从左往右
obeject[start:end] :表示从 start 开始到 end 结束,但是不包含 end, 从左往右
object[start:end:step]: 表示从 start 开始到 end 结束,但是不包含 end,step 为正从左往右,负从右往
1. 切割单个值
>>> a = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]
>>> a [ 0 ]
0
>>> a [ 4 ]
4
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 end 全部取正数的情况
>>> a
[ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]
>>> a [ 1 : 6 ]
[ 1 , 2 , 3 , 4 , 5 ]
>>> 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 ]
[ 4 , 5 , 6 , 7 , 8 ]
>>> 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 ]
[ 1 , 2 , 3 ]
>>> a [ 1 : - 6 : - 1 ]
[]
>>> a [ - 1 : 6 ]
[]
>>> a [ - 1 : 6 : - 1 ]
[ 9 , 8 , 7 ]
6. 连续的切片操作
>>> a
[ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]
>>> a [: 8 ][ 2 : 5 ][ - 1 :]
[ 4 ]
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 + 2 : 2 * 3 : 7 % 2 ]
[ 3 , 4 , 5 ]
8. 切片可以操作其他的对象
>>> t = ( 1 , 2 , 3 , 4 , 5 )
>>> t [ 1 : 3 ]
( 2 , 3 )
>>> s = "ACDRF"
>>> s [ 1 : 3 ]
'CD'
>>> 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 中进行反向输出列表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值