Python slice() 函数用法

目录

  • 一、slice() 函数参数
  • 二、使用示例
  • 总结
    • 参考


一、slice() 函数参数

在Python中,切片(slice)是对序列型对象(如list, string, tuple)的一种高级索引方法。
slice() 函数实现切片对象,主要用在切片操作函数里的参数传递。
slice() 函数返回 slice 对象(切片)。slice 用于指定如何对序列进行裁切。

slice(start, end, step)

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

二、使用示例

代码如下(示例):

#对元组切片
>>>a = ("a", "b", "c", "d", "e", "f", "g", "h")
>>>x = slice(2)#定义一个slice() 函数,用于在切片操作时传递参数
>>>x
slice(None, 2, None)
>>>a[x]
('a', 'b')
>>>y= slice(3,5)
>>>y
slice(3, 5, None)
>>>a[y]
('d', 'e')
>>>z=slice(0, 8, 3)
>>>z
slice(0, 8, 3)
>>>a[z]
('a', 'd', 'g')
>>>o=slice(0,-1) #-1表示左后一个位置的索引
>>>a[o]
('a', 'b', 'c', 'd', 'e', 'f', 'g')
>>>p=slice(-2,-1) 
>>>a[p]
('g',)

#对列表/字符串切片
>>>st='I love China!'
>>>st[x]
'I '
>>>st[y]
'ov'
>>>st[z]
'Io '

#对numpy数组进行切片
>>>import numpy as np
>>>arr=np.arange(1, 10)  #一维数组切片
>>>arr
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>>arr[x]
array([0, 1])
>>>arr=arr.reshape(3,3) #二维数组切片
>>>arr
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>>arr[:,x] #行取所有行,列按照x取前2列
array([[1, 2],
       [4, 5],
       [7, 8]])

#对torch中tensor进行切片
>>>import torch
>>>t = torch.arange(1, 17).view(4, 4)
>>>t
tensor([[ 1,  2,  3,  4],
        [ 5,  6,  7,  8],
        [ 9, 10, 11, 12],
        [13, 14, 15, 16]])
>>>t[x,:]    #行按照x取前2行,列取所有列
tensor([[1, 2, 3, 4],
        [5, 6, 7, 8]])


总结

总结了Python slice() 函数用法,并展示了一些常见用法。

参考

Python slice() 函数(W3school)
Python slice() 函数|菜鸟教程

你可能感兴趣的:(python基础,python,开发语言)