内置的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) # 5print(sc.stop) # 50print(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"
