python之slice()内置函数:实现可迭代对象的切片操作


前言

① slice() 函数实现切片对象,主要用在切片操作函数里的参数传递。【类比可迭代对象自带的切片操作

②代码解释 slice() 内置方法一:

print(help(slice))

运行结果:

class slice(object)
 |  slice(stop)
 |  slice(start, stop[, step])
 |  
 |  Create a slice object.  This is used for extended slicing (e.g. a[0:10:2]).
 |  
 |  Methods defined here:
 |  
 |  __eq__(self, value, /)
 |      Return self==value.
 |  
 |  __ge__(self, value, /)
 |      Return self>=value.
 |  
 |  __getattribute__(self, name, /)
 |      Return getattr(self, name).
 |  
 |  __gt__(self, value, /)
 |      Return self>value.
 |  
 |  __le__(self, value, /)
 |      Return self<=value.
 |  
 |  __lt__(self, value, /)
 |      Return self<value.
 |  
 |  __ne__(self, value, /)
 |      Return self!=value.
 |  
 |  __reduce__(...)
 |      Return state information for pickling.
 |  
 |  __repr__(self, /)
 |      Return repr(self).
 |  
 |  indices(...)
 |      S.indices(len) -> (start, stop, stride)
 |      
 |      Assuming a sequence of length len, calculate the start and stop
 |      indices, and the stride length of the extended slice described by
 |      S. Out of bounds indices are clipped in a manner consistent with the
 |      handling of normal slices.
 |  
 |  ----------------------------------------------------------------------
 |  Static methods defined here:
 |  
 |  __new__(*args, **kwargs) from builtins.type
 |      Create and return a new object.  See help(type) for accurate signature.
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |  
 |  start
 |  
 |  step
 |  
 |  stop
 |  
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |  
 |  __hash__ = None

None

③代码解释 slice() 内置方法二:

print(slice.__doc__)

运行结果:

语法

slice(start, end, step)

参数值介绍

参数描述
start 可选。整数,指定在哪个位置开始裁切。默认为 0。(起始位置)
end 可选。整数,指定在哪个位置结束裁切。位置参数。(结束位置)
step 可选。整数,指定裁切的步进值。默认为 1。(间距)

返回值介绍

返回一个切片对象

实例

实例①:创建一个元组和一个切片对象。在位置 3 处启动切片对象,并在位置 5 处裁切,并返回结果。

a = ("a", "b", "c", "d", "e", "f", "g", "h")
x = slice(3, 5)
print('切片对象:', x, '类型:', type(x))
print(a[x])

运行结果:

实例②:创建一个元组和一个切片对象。使用 step 参数返回每第三个项目。

a = ("a", "b", "c", "d", "e", "f", "g", "h")
x = slice(0, 8, 3)
print('切片对象:', x, '类型:', type(x))
print(a[x])

运行结果:

实例③:创建一个元组和一个 slice 对象。使用 slice 对象仅获取元组的前两项。

a = ("a", "b", "c", "d", "e", "f", "g", "h")
x = slice(2)
print('切片对象:', x, '类型:', type(x))
print(a[x])

运行结果:

相关