Python3内置函数汇总

目录

Python3 slice() 函数详解 列表、字符串、元组等的切片对象

slice()函数的主要作用是获取对象(常用于列表、字符串、元组等)的切片对象,相当于表示range(start, stop, step)生成的索引集,start,stop参数默认为None。使用扩展索引语法时也会生成切片对象。例如:a[start: stop: step]。
它是Python的内置函数,在python文件中直接可以使用。

slice

语法

slice(stop)
slice(start, stop[, step])

参数

stop - 切片的结束值,最终结果的索引值一定小于stop,这取决于step的值。默认情况下(step未设置或者设置为1),最大值等于stop - 1的索引。另外如果slice()函数只设置了一个参数,就当做stop使用,那么就相当于是slice(0, stop)。
start - 切片的开始值,默认为0。
step - 切片的步进值,默认为1。不能将步进值设置0,会报错。如果步进值为复数,则返回反向结果。

返回值

切片对象

实例

§ 实例1 - 函数的用法
#设置一个列表
>>> l = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

#获取前10个参数。索引值10对应的是数字11,而结果是不包含当前值的。所有结果一定小于stop。
>>> s = slice(10)
>>> l[s]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

#设置开始和结束索引。
>>> s = slice(5,10)
>>> l[s]
[6, 7, 8, 9, 10]

#设置开始、结束和步进值。
>>> s = slice(0,10,2)
>>> l[s]
[1, 3, 5, 7, 9]

#设置反向获取,还是由于stop不包含当前值的原因。0索引对应的数字1,没有被显示出来。
>>> s = slice(10,0,-1)
>>> l[s]
[11, 10, 9, 8, 7, 6, 5, 4, 3, 2]

#把stop设置为None就没有结束值了,就等于从开始位置一直到数据的最后。正向和方向同理。
>>> s = slice(10,None,-1)
>>> l[s]
[11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
§ 实例2 - 扩展索引语法

索引语法在实际的工作中使用较为广泛,直接替代了slice()函数的使用。它是由引号(:)进行分割来表达start、stop和step。效果与slice()函数一致。 那么在什么时候比较适合使用slice()函数呢? 一般用于在同一个代码块中,有多个切片操作,而如果使用索引语法的话,需要立即对数据进行处理,代码较为分散。而提前先使用slice()声明出多个切片对象,便于管理,例如:快速修改、重载(覆盖)以及复用(多个数据使用相同的切片规则)。

>>> l = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

>>> l[:10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> l[5:10]
[6, 7, 8, 9, 10]

>>> l[0:10:2]
[1, 3, 5, 7, 9]

>>> l[10:0:-1]
[11, 10, 9, 8, 7, 6, 5, 4, 3, 2]

#使用索引语法与slice()函数相比还可以省略掉None的设置,直接留空就是None了。
>>> l[10::-1]
[11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

如果有任何建议或意见,欢迎交流沟通

作者:张恺阳

本文链接:https://www.zky.name/article/63.html

来源:张恺阳博客