slice 对象
1


在 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》。

另见:funtools.islice

多少事,从来急。天地转,光阴迫。

欢迎点赞评论还有分享☭☭☭

讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!