Python slice() 函数

Python3 内置函数 Python3 内置函数


slice() 是 Python 中用于创建切片对象的内置函数。

切片对象用于指定序列的切片范围,可以用在任何支持切片操作的地方,如列表、元组、字符串等。

单词释义slice 意为"切片",用于创建切片对象。


基本语法与参数

语法格式

slice(stop)
slice(start, stop)
slice(start, stop, step)

参数说明

  • 参数 start(可选):
    • 类型: 整数
    • 描述: 切片起始位置,默认为 0。
  • 参数 stop
    • 类型: 整数
    • 描述: 切片结束位置(不包含)。
  • 参数 step(可选):
    • 类型: 整数
    • 描述: 切片步长,默认为 1。

函数说明

  • 返回值: 返回一个切片对象。
  • 特点: 切片对象可以重复使用,非常方便。

实例

示例 1:创建切片对象

实例

# 创建切片对象
s1 = slice(5)      # 从0到5
s2 = slice(1, 5)    # 从1到5
s3 = slice(0, 10, 2)  # 从0到10,步长2

# 在列表切片中使用
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(my_list[s1])  # 输出: [0, 1, 2, 3, 4]
print(my_list[s2])  # 输出: [1, 2, 3, 4]
print(my_list[s3])  # 输出: [0, 2, 4, 6, 8]

运行结果预期:

[0, 1, 2, 3, 4]
[1, 2, 3, 4]
[0, 2, 4, 6, 8]

代码解析:

  1. slice(5) 等同于 [0:5]
  2. slice(1, 5) 等同于 [1:5]
  3. slice(0, 10, 2) 等同于 [0:10:2]

示例 2:切片对象的属性

实例

# 查看切片对象的属性
s = slice(1, 10, 2)
print(s.start)   # 输出: 1
print(s.stop)    # 输出: 10
print(s.step)    # 输出: 2

# 负数索引
s = slice(-3, -1)
print(s.start)   # 输出: -3
print(s.stop)    # 输出: -1

运行结果预期:

1
10
2
-3
-1

代码解析:

  • 切片对象有 start、stop、step 三个属性。
  • 支持负数索引。

示例 3:实际应用

实例

# 创建可重用的切片
first_three = slice(3)
last_three = slice(-3, None)

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]

print(my_list[first_three])  # 输出: [1, 2, 3]
print(my_list[last_three])    # 输出: [7, 8, 9]

# 用于多维切片
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
row = slice(0, 2)  # 前两行
col = slice(1, 3)  # 第2-3列
print([row[col] for row in matrix[row]])
# 输出: [[2, 3], [5, 6]]

运行结果预期:

[1, 2, 3]
[7, 8, 9]
[[2, 3], [5, 6]]

切片对象的主要优点是可以重复使用,使代码更清晰。


Python3 内置函数 Python3 内置函数