python----切片

python分割可迭代的对象 ,一个完整的切片包含两个":"

语法格式

object [start_index : end_index : step]
start_index: 切片切割开始的位置
end_index : 切片切割结束的位置,不包含end_index处的元素
step:步长,默认值是1,也可以取负值(从右往左的切割)

1.切割单个值

#以列表 [0,1,2,3,4,5,6]为例
a[0]=0
a[2]=2
a[-1]=6

2.切割完整对象

#以列表[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_indexend_index取正负值

  start_indexend_index全为正

#以列表[0,1,2,3,4,5,6,7,8,9]为例
>>> 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]

  start_indexend_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]

  start_indexend_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]

4.连续切片

>>> 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]

5.三个参数可以是表达式

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

6.其他对象的切片

>>> 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
10

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值