slice 对象
在 Python 中对序列进行切片非常常见,切片功能也非常好用。比如
# 取一个序列中的偶数项
seq = [1, 2, 3, 4, 5, 6]
seq[1::2]
>>> [2, 4, 6]
# 取第3到5个元素
seq = [1, 2, 3, 4, 5, 6]
seq[2:5]
>>> [3, 4, 5]
现在假如你有一个文件,文件中每行的特定位置记录这一些数据,比如
# 数量 价格
record = '....................100 .......513.25 ..........'
你现在想通过切片来提取数据获得每行的总价,但这时候的代码会是这样的
cost = int(record[20:23]) * float(record[31:37])
这样硬编码可能会让你在两周后再来看代码时不知道 record[20:23]
获取的是什么。这时可以借助 Python 内建的 slice
函数来获取一个切片对象,这个切片对象可以完成切片同时还具有名字,不用担心代码难以阅读。
SHARES = slice(20, 23)
PRICE = slice(31, 37)
cost = int(record[SHARES]) * float(record[PRICE])
slice
应该算是用得很少的内建函数了,但在处理某些文本和数据的时候还是很有用的。
例子来自 《Python Cookbook》。
本作品采用《CC 协议》,转载必须注明作者和本文链接