字符串索引和分片,[1:3]、[1:]、[:3]、[:-1]、[:]、[:-1]、[::2]、[9:1:-1]

本文参考借鉴了《Python学习手册(第四版)》,Mark Lutz著;李军 刘红伟等译一书。
字符串索引和分片

字符串是字符的有序集合,所以我们能够通过其位置获得他们的元素。

>>> s = "Hello"
>>> s[0],s[-1]
('H', 'o')
>>> s[0:2],s[1:],s[0:-1]
('He', 'ello', 'Hell')

索引(s[i])获取特定便宜的元素:
——第一个元素的偏移为0
——负偏移索引意味着从最后或右边反向进行计数
——s[0]获取第一个元素
——s[-1]获取倒数第一个元素(等同于s[len(s)-2])

分片(s[i:j])提取对应的部分作为一个序列:
——上边界并不包含在内(i为下边界,j为上边界)
——在未给出的情况下,分片的边界默认为0和序列的长度
——s[1:3]获取了从偏移为1的元素,直到但不包括偏移为3的元素
——s[1:]获取了从偏移为1知道末尾(偏移为序列长度)
——s[:3]获取了从偏移为0直到但不包括偏移为3之间的元素
——s[:-1]获取了从偏移为0直到但是不包括最后一个元素之间的元素
——s[:]获取了从偏移0到末尾之间的元素,这就有效地实现顶层s拷贝

在python2.3中,分片表达式增加了一个可选的第三个索引,用作步进。完整分片格式为s[i:j:K],这表示“索引s对象中的元素,从偏移为i直到j,每k元素索引一次,k值默认为1。

>>> s="0123456789"
>>> s[0:10:2] #代表从偏移为0到10之间,每2个元素索引一次(等同于[::2])
'02468'
>>> s[::-1] 
'9876543210'

s[::-1],前两个参数默认为0和序列的长度,步进-1表示分片将会从右至左进行,每1个元素索引一次,实际效果就是将序列反转。

通过一个负数步进,两个边界到的实际意义进行了反转。

>>> s[9:1:-1]
'9876543'

以上内容如有错误,敬请批评指正!谢谢!

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值