内置的slice()函数创建一个切片对象,在所有可以使用切片的地方都可以使用切片对象:

    1. items = [0, 1, 2, 3, 4, 5]
    2. print(items[2:4]) # [2, 3]
    3. sc = slice(2, 4)
    4. print(items[sc]) # [2, 3]
    5. items[sc] = [10, 11]
    6. print(items) # [0, 1, 10, 11, 4, 5]
    7. del items[sc]
    8. print(items) # [0, 1, 4, 5]

    切片对象调用start stop step属性可获取更多信息:

    1. sc = slice(5, 50, 2)
    2. print(sc.start) # 5
    3. print(sc.stop) # 50
    4. print(sc.step) # 2

    通过调用切片indices(size)方法将其映射到一个已知大小序列上,返回三元组(start, stop, step),所有的值都会缩小至适合这个已知序列的边界为止。

    1. my_str = "HelloWorld"
    2. sc = slice(5, 50, 2)
    3. print(sc.indices(len(my_str))) # (5, 10, 2)
    4. for i in range(*sc.indices(len(my_str))):
    5. print(my_str[i]) # 依次返回 "W" "r" "d"