Python有这样一种写法,可以从序列里面切割(slice)出一部分内容,让我们能够轻松地获取原序列的某个子集合。凡是实现了__getitem__与__setitem__这两个特殊方法的类都可以切割。
最基本的写法是用somelist[start:end]这一形式来切割,左闭右开:也就是从start开始一直取到end这个位置,但不包含end本身的元素。
a = "hello world! are you ok!"
print(a[0:len(a)])
print(a[5:])
print(a[:10])
print(a[-len(a):])
print(a[1:10:2]) # 2代表步长,隔多久进行截取
print(a[:]) # 创建副本,适用于可变类型循环时且长度发生变更
print(a[::-1]) # 翻转
# 针对可变类型
b = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b[0:5] = [44] # 可用于改变列表结构,右侧需要是一个可迭代类型
print(b)
c, d = b[3:5] # 可用于unpacking,左右个数需相等
print(c, d)