Python实用技法第10篇:对切片命名

作者: IT派森 | 来源:发表于2019-08-05 16:17 被阅读4次

1、需求🙀

我们的代码已经变得无法阅读,到处都是硬编码的切片索引,我们想优化他们。

2、解决方案😸

代码中如果有很多硬编码的索引值,将导致可读性和维护性都不佳。

内置的slice()函数会创建一个切片对象,可以用在任何运行进行切片操作的地方。

items=[0,1,2,3,4,5,6]
a=slice(2,4)
print(items[2:4])
print(items[a])

items[a]=[10,11,12,13]
print(items)

del items[a]
print(items[a])
print(items)

运行结果:

[2, 3]
[2, 3]
[0, 1, 10, 11, 12, 13, 4, 5, 6]
[12, 13]
[0, 1, 12, 13, 4, 5, 6]

如果有一个slice对象的实例s。可以分别通过s.start、s.stop以及s.step属性得到关于该对象的信息。例如:

items=[0,1,2,3,4,5,6]
a=slice(2,8,3)
print(items[a])
print(a.start)
print(a.stop)
print(a.step)

结果:

[2, 5]
2
8
3

此外,可以通过使用indices(size)方法将切片映射到特定大小的序列上。这会返回一个(start,stop,step)元组,所有的值都已经恰当地限制在边界以内(当做索引操作时可避免出现IndexError异常),例如:

s='HelloWorld'
a=slice(2,5)
print(a.indices(len(s)))
for i in range(*a.indices(len(s))):
    print(str(i)+":"+s[i])
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

结果:

(2, 5, 1)
2:l
3:l
4:o

相关文章

  • Python实用技法第10篇:对切片命名

    1、需求? 我们的代码已经变得无法阅读,到处都是硬编码的切片索引,我们想优化他们。 2、解决方案? 代码中如果有很...

  • 【Python进阶】1.11 命名切片

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

  • Python3 - 命名切片

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

  • Python学习路线实用技法:筛选序列中的元素

    Python学习路线实用技法:筛选序列中的元素 序列中含有一些数据,我们需要提取其中的值或根据某些标准对序列做删减...

  • python切片

    python 能针对字符串、列表、元组进行切片,python没法对字典进行切片,因为字典中存储的元素时无序的,无法...

  • 用pythonic方式来思考(2)

    第5条 了解切割序列的方法 python 支持对序列进行切片操作,可以对内置的 list、str和bytes 进行...

  • 我的笔记4.9:慕课网python入门-廖雪峰

    对list进行切片 对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作...

  • Python的高级特性

    切片 list切片 tuple切片 str切片 迭代 在Python中迭代是通过for ... in ...来实现...

  • python切片是什么?

    python切片是什么? 切片是指对操作的对象取出一部分的概念 字符串、列表、元组都支持切片语法 切片的语法为 [...

  • Python使用列表的一部分(55)

    处理列表的部分元素,Python称之为切片。 python大大的图 我的图 1.切片 切片其实跟range( )很...

网友评论

    本文标题:Python实用技法第10篇:对切片命名

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