python 切片 1.0

1. 切片的含义

python中切片是用来切割可迭代对象(例:容器),一个完整的切片是包含三个参数和冒号的,语法为:object[start : end : step],object表示要切片的目标;start表示切片的起始位置,如果没有值的话就会从头开始算起;end表示切片的结束位置,但不包含end位置的脚标(是一个前闭后开的结构);step表示步长,默认取值为1,如果为正数的情况就表示从左往右,如果为负数就表示从右往左
注: 如果在切片的时候,超出下标不会报错:如果切片的操作方向相互矛盾的时候不会报错,返回的值为空

2. 切片操作展示

1.python 切片语法的解释

object[start:]     #表示从start开始切割到结束,顺序是从左往右
object[:end]      #表示从最开始切割到end结束,但是不包含end,顺序是从左往右 
object[start:end] #表示从start开始切割到end结束,不包含end,顺序从左往右 
object[start:end:step] #表示从start开始切割到end结束,不包含end,如果step为正数,顺序从左往右,如果为负数,顺序从右往左 

2.切割单个值

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

3.切割完整对象
当start、end、step的默认值为1的时候和step默认值为-1的时候

a = [0,1,2,3,4,5,6,7,8,9]
print(a[:])   #默认值为1
print(a[::])  #默认值为1
print(a[::-1])#step值为-1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0] (step值为-1)

3.start和end都为正数的时候

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

4.start和end都为负数的时候

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

5.当start和end正负数混合的时候

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

6.连续的切片

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

7.切片当中的参数用表达式表达

a = [0,1,2,3,4,5,6,7,8,9]
print(a[1+1:2*4:7%2])
[2, 3, 4, 5, 6, 7]

8.切片对其他对象的操作

a = "Hellow!"
print(a[1:5])
for i in range(1,100)[55:60]:
	print(i)
ello
56
57
58
59
60

9.切片中常出现的错误
超出下标

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

方向相互矛盾

a = [0,1,2,3,4,5,6,7,8,9]
print(a[1:6:-1]) #start、end都为正数
print(a[-1:-6])  #start、end都为负数
# start、end正负数混合
print(a[1:-6:-1])
print(a[-1:6])
[]
[]
[]
[]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值