python3中的字符串的索引和切片

  • 索引index
    python字符串是不可以改变的序列,所有的序列都可以通过索引来获取其中的数据元素
  • 索引语法:
    字符串[整数表达式]
  • 说明
    1.序列的正向索引是从0开始的,第二个索引为1,最后一个索引为 len(s)-1
    2.序列的反向索引是从-1开始的,-1代表最后一个,-2代表倒数第二个,以此类推,第一个是 -len(s)
    示例:
s = 'abcde'
>>>s[0]  # a
>>>s[1]  # b
>>>s[4]  # e
>>>s[5]  #  EndexError  越界错误
>>>s[-1]  # e
>>>s[-2]  # d
>>>s[-5]  # a
  • 切片 slice
    从字符串序列中取出相应的元素重新组成一个字符串序列
  • 语法
    s[(开始索引b):(结束索引e)(:(步长s))]
  • 注: 小括号()括起来的部分可以省略
    (包含开始索引位置,不包含结束索引位置)
  • 说明:
    1. 开始索引是切片切下的位置,0代表第一个元素,1代表第二个元素, -1 代表最后一个元素
    2. 结束索引是切片的终止索引(但不包含终止点)
    3. 步长是切片每次获取完当前元素后移动的方向和偏移量
      3.1 没有步长,相当于步长为1,(默认为1)
      3.2 当步长为正整数时,取正向切片,开始索引默认为0,结束索引为最后一个元素的下一个位置
      3.3 当步长为负数时,取反向切片, 反向切片时,默认的其实位置为最后一个元素,终止位置为第一个元素的前一个位置
      示例:
s = 'abcde'
>>>s[0:4]  # 'abcd'  1代表起始索引,4代表到此位置不取,直接结束
>>>s[:4]  # 'abcd'
>>>s[2:5]  # 'cde'  切片索引可以越界
>>>s[2:]  # 'cde'
>>>s[0:]  # 'abcde'
>>>s[:]  # 'abcde'
>>>s[1:1]  # ''
>>>s[4:1]  # ''
>>>s[1:5]  # 'bcde'
>>>s[1:5:1]  # 'bcde'
>>>s[1:5:2]  # 'bd'
>>>s[::2]  # 'ace'
>>>s[4:0:-1]  # 'edcb'   反向切片包含起始,不包含末尾
>>>s[::-1]  # 'edcba'
>>>s[-1::-1]  # 'edcba'
>>>s[4::-2] # 'eca

猜你喜欢

转载自blog.csdn.net/fayzoro/article/details/82052384