本节介绍Python里的字符串的索引和分片知识,字符串的索引主要是通过位置进行索引,分片是通过步长进行分片。

索引

对于一个有序序列,可以通过索引的方法来访问对应位置的值。字符串便是一个有序序列,Python 使用 下标 来对有序序列进行索引。索引是从 0 开始的,所以索引 0 对应与序列的第 1 个元素。

正负索引

s = "hello world"
s[0]

# 运行结果: 'h'

Python索引是从 0 开始的,所以索引 0 对应与序列的第 1 个元素。为了得到第 5 个元素,需要使用索引值 4

除了正向索引,Python还引入了负索引值的用法,即从后向前开始计数,例如,索引 -2 表示倒数第 2 个元素:

s = "hello world"
s[-4]

# 运行结果:  'o'

分片

分片用来从序列中提取出想要的子序列,其用法为:

var[lower:upper:step]

其范围包括 lower ,但不包括 upper ,即 [lower, upper)step 表示取值间隔大小,如果没有默认为1

s = 'hello world'
s[1:3]  # 结果 'el'

s[1:-2] # 结果:'ello wor'

包括索引 1 但是不包括索引 -2

lower和upper可以省略,省略lower意味着从开头开始分片,省略upper意味着一直分片到结尾。

s[:3]  #结果: 'hel'
s[-3:] #结果: 'rld'
s[:]   #结果: 'hello world'

# 每隔两个取一个值:
s[::2] #结果: 'hlowrd'

当step的值为负时,省略lower意味着从结尾开始分片,省略upper意味着一直分片到开头。

s[::-1] #结果: 'dlrow olleh'

当给定的upper超出字符串的长度(注意:因为不包含upper,所以可以等于)时,Python并不会报错,不过只会计算到结尾。

s[:100]
# 结果: 'hello world'

博主个人公众号
版权声明 ▶ 本网站名称:陶小桃Blog
▶ 本文链接:https://www.52txr.cn/2022/RePython3.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!

最后修改:2022 年 06 月 08 日
如果觉得我的文章对你有用,请随意赞赏