Python - 自带方法 - data[ ] - 切片

python得切片功能非常实用,能够用简短的方式对字符串、列表进行截取操作
以下是python切片的使用例子汇总,方便大家学习查阅

切片

格式:
数据[开始索引:结束索引:步长]
object[取:不取:方向]
object[start_index:end_index:step]
object[a:b:c]
object[a:b]
object[a]

object可以是列表、字符串、元组
a、b可以是正整数(正索引) 或者负整数(负索引)
step:正负数均可,其绝对值大小决定了切取数据时的“步长”,默认为1
正表示“从左往右”取值
负表示“从右往左”取值

a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
b = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
c = "0123456789"
0123456789
正索引0123456789
负索引-10-9-8-7-6-5-4-3-2-1

正方向切片:

代码方向a列表效果b元祖效果c字符串效果解释
a[0]–>0(0)"0"单切片
a[-4]–>6(6)"6"单切片
a[:]–>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9](0, 1, 2, 3, 4, 5, 6, 7, 8, 9)"0123456789"全部切片
a[::]–>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9](0, 1, 2, 3, 4, 5, 6, 7, 8, 9)"0123456789"全部切片
a[6:]–>[6, 7, 8, 9](6, 7, 8, 9)"6789"从start_index=6开始,到“终点”
a[1:6]–>[1, 2, 3, 4, 5](1, 2, 3, 4, 5)"12345"start_index=1到end_index=6
a[1:-6]–>[1, 2, 3](1, 2, 3)"123"/
a[-6:]–>[4, 5, 6, 7, 8, 9](4, 5, 6, 7, 8, 9)"456789"从start_index=-6开始,到“终点”
a[-6:-1]–>[4, 5, 6, 7, 8](4, 5, 6, 7, 8)```“45678”`/
a[::2]–>[0, 2, 4, 6, 8](0, 2, 4, 6, 8)"02468"跳切
a[::3]–>[0, 3, 6, 9](0, 3, 6, 9)"0369"跳切
a[6:2]–>[]()""没取到数据
a[-1:-6]–>[]()""没取到数据
a[-1:6]–>[]()""没取到数据
a[:6]–>[0, 1, 2, 3, 4, 5](0, 1, 2, 3, 4, 5)"012345"从“起点”值0开始,到end_index=6
a[:-6]–>[0, 1, 2, 3](0, 1, 2, 3)"0123"/

反方向切片:

代码方向a列表效果b元祖效果c字符串效果解释
a[6::-1]<–[6, 5, 4, 3, 2, 1, 0](6, 5, 4, 3, 2, 1, 0)"6543210"从start_index=6开始,到“起点”
a[-1:-6:-1]<–[9, 8, 7, 6, 5](9, 8, 7, 6, 5)"98765"/
a[-6::-1]<–[4, 3, 2, 1, 0](4, 3, 2, 1, 0)"43210"从start_index=-6开始,到“起点”
a[-1:6:-1]<–[9, 8, 7](9, 8, 7)"987"/
a[:-6:-1]<–[9, 8, 7, 6, 5](9, 8, 7, 6, 5)"98765"从“终点”,到end_index=-6
a[:6:-1]<–[9, 8, 7][9, 8, 7)"987"从“终点”值9开始,到end_index=6
a[::-1]<–[9, 8, 7, 6, 5, 4, 3, 2, 1, 0](9, 8, 7, 6, 5, 4, 3, 2, 1, 0)"9876543210"倒序
a[1:6:-1]<–[]()""没取到数据
a[1:-6:-1]<–[]()""没取到数据

多层切片操作

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]

理论上可无限次多层切片操作,只要上一次返回的是非空可切片对象即可。

切片操作的三个参数可以用表达式 + - * /

a[2+1:3*2:1]
[3, 4, 5]
## 即:a[2+1:3*2:1] = a[3:6:1]


slice() 函数实现切片

class slice(stop)
class slice(start, stop[, step])
参数说明:

start -- 起始位置
stop -- 结束位置
step -- 间距
>>>myslice = slice(5)    # 设置截取5个元素的切片
>>> myslice
slice(None, 5, None)
>>> arr = range(10)
>>> arr
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> arr[myslice]         # 截取 5 个元素
[0, 1, 2, 3, 4]
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值