Skip to content

切片 Slice

字符串, 列表, 元组都可以进行切片操作。

例如

python
L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']

# 笨办法1 取前3个元素
[L[0], L[1], L[2]]
# 笨办法2 取前3个元素
L2 = []
for i in range(3):
    L2.append(L[i])

Python提供了切片(Slice)操作符,能大大简化这种操作。

例如

python
L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']

# 切片操作1 取前3个元素
L[0:3]

切片操作还可以省略第一个索引,默认从索引0开始:

python
L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']

# 切片操作3 取前3个元素
L[:3]

切片操作还可以省略第二个索引,默认取到最后一个元素:

python
L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']

# 切片操作4 取从索引1开始到最后一个元素
L[1:]

设么都不写,就是复制一个

python
L = list(range(100)) # [0, 1, 2, ..., 99]
L[:]  # [0, 1, 2, ..., 99]

切片操作还可以使用负数索引,例如:

python
L = list(range(100)) # [0, 1, 2, ..., 99]

#  取最后3个元素
L[-3:]  # [97, 98, 99]

切片可以间隔去元素,例如:

python
L = list(range(100)) # [0, 1, 2, ..., 99]

# 前10个元素,每隔2个取一个
L[:10:2]  # [0, 2, 4, 6, 8]

Python的切片功能非常强大,可以用来反转字符串。例如:

python
s = 'hello'
s[::-1]  # 'olleh'

超出切片范围, 会按无限长度处理,不会报错。

python
s = 'hello'
s[:11]  # 'hello'

京ICP备2024093538号-1