Appearance
切片 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'