Python slice() 函数
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]
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]
代码解析:
slice(5)等同于[0:5]。slice(1, 5)等同于[1:5]。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
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]]
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 内置函数
点我分享笔记