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

    在了解什么是切片之前,先考虑一个问题:给定一个字符串或者数组,在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











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值