【Python Cookbook】S1E09 对切片命名

目录

问题

代码的可阅读性非常重要,如何增强切片中的可阅读性?本文将提供一种方案。

解决方案

假设有一些代码用来从字符串的固定位置取出具体的数据:

python 复制代码
record = "...100...513.25..."
cost = int(record[3:6]) * float(record[9:15])
print("cost is ", cost)

上述的代码可读性和可维护性很低,在一段时间后再回看这段代码,可能会发现自己都难理解这两个字段到底是什么。对于这种切片切分,不妨我们使用合理的命名,不仅便于后期维护,还可显著增加代码的可阅读性:

python 复制代码
shares = slice(3, 6)
price = slice(9, 15)
cost = int(record[shares]) * float(record[price])
print("cost is ", cost)

讨论

slice() 函数,不仅可以用于上述增强代码的可阅读性,其本质上会创建一个切片对象,我们可以在对象的实例上进行很多其他的操作。

假设有一个 slice 对象的实例 s ,我们可以分别通过 s.starts.stop 以及 s.step 属性来得到关于该对象的信息,例如:

python 复制代码
s = slice(3, 6, 2)
print("s.start =", s.start)
print("s.stop = ", s.stop)
print("s.step = ", s.step)

所以可以看出,slice 对象有三个参数,分别是 (start, stop, step) ,顾名思义,即开始的 index ,结束的 index 以及每一步的跨步大小是多少 step

相关推荐
dFObBIMmai1 分钟前
如何排查SQL存储过程内存溢出_优化大数据量临时表使用
jvm·数据库·python
Derrick__12 分钟前
认识 LangChain 的“核心三剑客”
人工智能·python·langchain
弹简特2 分钟前
【零基础学Python】01-注释+变量+标识符+输入输出
开发语言·python
m0_470857643 分钟前
mysql如何快速撤销所有数据库更改_通过事务回滚机制实现
jvm·数据库·python
iuvtsrt3 分钟前
SQL触发器中调用外部接口如何操作_配置外部存储过程引用
jvm·数据库·python
idingzhi5 分钟前
A股量化策略日报(2026年05月11日)
android·开发语言·python·kotlin
m0_740653226 分钟前
Redis如何查询附近的人_利用GEORADIUS指令进行Geo范围搜索
jvm·数据库·python
Jetev6 分钟前
宝塔面板如何实现网站重定向_配置301永久跳转与域名更换
jvm·数据库·python
AI机器学习算法6 分钟前
说走就走的AI之旅第01课:浅谈机器学习
数据结构·人工智能·python·深度学习·机器学习·大模型·线性回归
༒࿈南林࿈༒7 分钟前
yi欣考研刷题题库js逆向
python·js逆向