内置的slice()
函数创建一个切片对象,在所有可以使用切片的地方都可以使用切片对象:
items = [0, 1, 2, 3, 4, 5]
print(items[2:4]) # [2, 3]
sc = slice(2, 4)
print(items[sc]) # [2, 3]
items[sc] = [10, 11]
print(items) # [0, 1, 10, 11, 4, 5]
del items[sc]
print(items) # [0, 1, 4, 5]
切片对象调用start stop step
属性可获取更多信息:
sc = slice(5, 50, 2)
print(sc.start) # 5
print(sc.stop) # 50
print(sc.step) # 2
通过调用切片indices(size)
方法将其映射到一个已知大小序列上,返回三元组(start, stop, step)
,所有的值都会缩小至适合这个已知序列的边界为止。
my_str = "HelloWorld"
sc = slice(5, 50, 2)
print(sc.indices(len(my_str))) # (5, 10, 2)
for i in range(*sc.indices(len(my_str))):
print(my_str[i]) # 依次返回 "W" "r" "d"