Slice()函数:实用的Python切片小技巧

目录

1. 前言

2. 基本内置切片操作

2.1 基本概念

2.2 基础用法

1)起始与结束

2)负索引

3)步长参数

3. Slice()函数

3.1 优化冗余代码 

3.2  其它使用方式

4. 总结


1. 前言

而 Python 的切片(Slice)功能,为我们处理数据提供了极大的便利和灵活性,让数据操作变得如同切蛋糕般轻松自如,但是如果仅仅使用内置的切片手段,容易使得代码繁杂不易改动,这个时候,就需要slice()函数。

2. 基本内置切片操作

如果有基础可以直接跳跃至第3节。

2.1 基本概念

切片,简单来说,就是一种从序列中提取特定部分的机制。序列,像是列表、元组、字符串等。

以最常见的列表为例,假设我们有一个数字列表 numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],想要获取从索引 2 到索引 5 的元素(包括索引 2,不包括索引 5),只需要 numbers[2:5],就能得到 [2, 3, 4]。这就像在书架上快速抽出几本连续的书,方便又高效。

2.2 基础用法

1)起始与结束

sequence[start:end] 这个基本结构中,start 是起始索引,end 是结束索引。如果省略 start,默认从序列开头开始选取;如果省略 end,则默认选到序列末尾。例如,numbers[:5] 会得到 [0, 1, 2, 3, 4],而 numbers[5:] 则是 [5, 6, 7, 8, 9]。这就像在时间轴上,随意截取一段过去或未来的时光。

2)负索引

当索引为负数时,Python 会从序列的末尾开始计数,-1 表示最后一个元素,-2 表示倒数第二个,依此类推。比如,numbers[-3:] 能得到 [7, 8, 9],这为我们从序列尾部快速选取数据提供了便利,就像在倒计时中精准定位某个时刻。

3)步长参数

更神奇的是,切片还支持步长参数,语法变为 sequence[start:end:step]step 决定了选取元素的间隔,若 step=2,则每隔一个元素选取一个。例如,numbers[::2] 会得到 [0, 2, 4, 6, 8],仿佛在数据的海洋中,跳跃着前进,只选取特定的浪花。

3. Slice()函数

有了基本的切片知识,现在可以讲解下slice函数了,了解一下为何要多此一举用这个函数,寻其方便之处。其基础操作其实和切片差不多:

slice(start, end, step)

很熟悉吧,下面着重讲用法:

3.1 优化冗余代码 

如果要输出很多切片,如下:

receipt1 = "物品1: 苹果 数量:5  单价:3.00元"
receipt2 = "物品2: 香蕉 数量:10 单价:2.00元"
receipt3 = "物品3: 橙子 数量:3  单价:5.00元"

print(f'item: {receipt1[5:7]}, price: {receipt1[17:22]}')
print(f'item: {receipt2[5:7]}, price: {receipt2[17:22]}')
print(f'item: {receipt3[5:7]}, price: {receipt3[17:22]}')

运行结果:

 那么这样写十分不方便,如果改变字符串格式,那还需要继续改变每个切片。

而使用slice()函数就很方便:

receipt1 = "物品1: 苹果 数量:5  单价:3.00元"
receipt2 = "物品2: 香蕉 数量:10 单价:2.00元"
receipt3 = "物品3: 橙子 数量:3  单价:5.00元"

items=slice(5,7)
price=slice(17,22)

print(f'item: {receipt1[items]}, price: {receipt1[price]}')
print(f'item: {receipt2[items]}, price: {receipt2[price]}')
print(f'item: {receipt3[items]}, price: {receipt3[price]}')

运行结果和上面是一样的。

实现了优化冗余代码,提高代码复用,方便修改的效果

3.2  其它使用方式

siice的用法和切片有细微区别,比如none不可以胜率。

在[0,1,2,3,4,5,6,7,8,9]中,slice(None, 5) 会得到 [0, 1, 2, 3, 4],而 slice(5, None) 则是 [5, 6, 7, 8, 9]。这就像在时间轴上,随意截取一段过去或未来的时光。

slice(-3, None) 能得到 [7, 8, 9]。

slice(None, None, 2) 会得到 [0, 2, 4, 6, 8]。

4. 总结

Python 的 slice() 函数以简洁的语法和强大的功能,为我们处理数据提供了无尽的便利和可能性。从基础的序列元素选取,到灵活多变的参数组合应用,再到实际编程中的各种场景,slice() 都展现出了它独特的魅力和价值。

在未来的编程探索中,不妨多加运用 slice() 函数,感受它带来的高效与便捷,让数据处理变得轻松而富有艺术感。我是橙色小博,关注我,一起学习进步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橙色小博

一起在人工智能领域学习进步!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值