【Python】高级特性之切片(slice)

来源:互联网 发布:网站sql注入漏洞修复 编辑:程序博客网 时间:2024/06/05 09:17

    在了解什么是切片之前,先考虑一个问题:给定一个字符串或者数组,在Python中如何取其中的一部分数据。比如说我们要取前五个数或者前五个字符。在C++或者Java中底层都封装了很好的库函数给我们直接调用,比如Java中有subString,那么在Python中,我们首先能想到最笨的方法就是把这前五个元素列举出来:

list=[1,2,3,4,5,6,7,8,9]print(list[0], list[1], list[2], list[3], list[4])
    然后我们稍微想一下,好像能改进,可以用循环,于是有如下代码:

list=[1,2,3,4,5,6,7,8,9]for i in range(5):    print(list[i])

    但是,这样还是太麻烦了,毕竟都用上了循环。其实,Python是提供了一种切片机制,当我们有这种需求时,能极大地简化我们的代码:

list=[1,2,3,4,5,6,7,8,9]print(list[0:5])
    中括号[]中第一个元素表示起始偏移量,第二个元素表示结束偏移量,但是这里需要注意一点,这个范围是左闭右开的,即[0:5]=0,1,2,3,4。如果第一个偏移量是0,代码也可以简化为list[:5]。同时也支持隔几个元素取一次,比如每两个元素取一次可以写成list[0:5:2]=[1,3,5]。

    我们知道,Python支持list中取倒数第几个元素,那么类似的,也支持倒数取切片。

list=[1,2,3,4,5,6,7,8,9]print(list[-3:-1])  #结果为[7,8]
    同时,tuple也是一种特殊的list,也可以使用切片操作,切片返回的结果也是tuple,字符串同样也行,下面举两个简单的例子:
list = (1,2,3,4,5,6,7,8,9)str = '123456789'print(list[0:5])  #结果为(1,2,3,4,5)print(str[0:5])  #结果为12345







原创粉丝点击