美文网首页
Python3 - 命名切片

Python3 - 命名切片

作者: 惑也 | 来源:发表于2018-12-16 11:30 被阅读15次

问题

如果你的程序包含了大量无法直视的硬编码切片,并且你想清理一下代码。

解决方案

假定你要从一个记录(比如文件或其他类似格式)中的某些固定位置提取字段:

record = '....................100 .......513.25 ..........'
cost = int(record[20:23]) * float(record[31:37])

print(cost)
51325.0

与其那样写,为什么不想这样命名切片呢:

SHARES = slice(20, 23)
PRICE = slice(31, 37)
cost = int(record[SHARES]) * float(record[PRICE])

print(cost)
51325.0

通过命名切片,避免了使用大量难以理解的硬编码下标,代码更加清晰可读。

讨论

一般来讲,代码中如果出现大量的硬编码下标会使得代码的可读性和可维护性大大降低。

内置的 slice() 函数创建了一个切片对象。所有使用切片的地方都可以使用切片对象。比如:

items = [0, 11, 22, 33, 44, 55, 66, 77]
a = slice(2, 4)

# 取数
print(items[a])
print(items[2:4])
[22, 33]
[22, 33]

# 赋值
items[a] = [100, 200]
print(items)
[0, 11, 100, 200, 44, 55, 66, 77]

# 删除
del items[a]
print(items)
[0, 11, 44, 55, 66, 77]

如果有一个切片对象a,可以分别调用它的 a.start , a.stop , a.step 属性来获取更多的信息。比如:

a = slice(5, 50, 4)
print(a.start)
print(a.stop)
print(a.step)

5
50
4

相关文章

  • Python3 - 命名切片

    问题 如果你的程序包含了大量无法直视的硬编码切片,并且你想清理一下代码。 解决方案 假定你要从一个记录(比如文件或...

  • Python3 中的切片魔术方法

    从 Python3 的官方文档可知,Python3中的切片的魔术方法不再是Python2中的__getslice_...

  • Python3 切片

    #切片指从现有列表中获取一个子列表,即获取列表的一部分 #创建一个列表,一般创建列表时,变量名字会使用复数 stu...

  • 【Python进阶】1.11 命名切片

    微信公众号:Julia语言每周一三五更新Julia语言;每周二四六更新Python进阶; 命名切片 问题 如果你的...

  • Python3切片详解

    本文通过一个简单的例子讲解切片的应用: 先构造一个list列表a: 切片的使用可以看做 [start:end:in...

  • Python3切片详解 !

    先构造一个list列表a: a = list(range(1,8)) # [1, 2, 3, 4, 5, 6,...

  • LeetCode 3. 无重复字符的最长子串(Longest S

    3. 无重复字符的最长子串 Python3 巧用切片 GitHub链接:https://github.com/li...

  • [Tips] Windows 安装 python2 和 pyth

    python2 和 python3 同时使用 step1: 配置环境变量 step2: 重命名重命名其文件夹下命令...

  • 切图命名

    通用切片命名格式: 组件_类别_功能_状态@2x.png 举例:tabbar_icon_home_default@...

  • python 食谱-day02

    1.11 命名切片 第二种方式更加清晰可读、可维护性也高 内置的slice()函数创建了一个切片对象,可以被用在任...

网友评论

      本文标题:Python3 - 命名切片

      本文链接:https://www.haomeiwen.com/subject/czvtkqtx.html