python 切片和负索引(自我理解,防止遗忘)

一、切片:

  • 切片技术针对的是,有序的线性结构(sequence)         例如:    List、tuple、str
  • 切面操作时,如果下标不对(超出),不会报错 .
  • step 为负数时,返回的元素字符串时倒序的        
sequence[0]			           # 如果在序列中的中括号中,直接使用一个数字,表示的是下标(角标)
sequence[start:end]		       # [start, end)的区间范围的元素			
sequence[start:end:step]       # step表示步长

 运行结果:

使用命令行来完成操作
>>> s
'读书的根本目的是为了让自己明白世界,看清自己,让自己在无所依靠或者无所事事的时候,有一种严肃的力量推动着你往前走'
>>> s[1:3]
'书的'
>>> s[0:10]
'读书的根本目的是为了'
>>> s[0:10:2]
'读的本的为'
>>> s[12:]
'己明白世界,看清自己,让自己在无所依靠或者无所事事的时候,有一种严肃的力量推动着你往前走'
>>> s[::-1]
'走前往你着动推量力的肃严种一有,候时的事事所无者或靠依所无在己自让,己自清看,界世白明己自让了为是的目本根的书读'

二、负索引(概念):

  •     正常来说,所有数据都是从左向右读取,下标默认第一个是0,每次加一,以此类推
  •     但是我们有时候会对大量数据的右侧部分进行切割,所以设计了负索引
  •     右侧的第一个元素为-1,表示从右向左读取数据,每次减一,第二个 -2 ……

二、负索引引用:

  • 由于需要查找某一本书最后的一段话,所以会用到负索引 。
  • 例如我需要查找下列这句话的后两个字(使用负索引):读书的根本目的是为了让自己明白世界,看清自己,让自己在无所依靠或者无所事事的时候,有一种严肃的力量推动着你往前走。
  • 当我们使用切片时,正常想法是用step = -1 来进行操作,但此想法是错误的,原因是当step = -1 时,切片的顺序是从右到左排序实现的。(会出现以下结果)
    '读书的根本目的是为了让自己明白世界,看清自己,让自己在无所依靠或者无所事事的时候,有一种严肃的力量推动着你往前走'
    >>> s[:52:-1]
    '走前往'
  • 所以,当使用负索引时(step本质还是1,即切片的顺序是从左到右实现的):

    >>> s
    '读书的根本目的是为了让自己明白世界,看清自己,让自己在无所依靠或者无所事事的时候,有一种严肃的力量推动着你往前走'
    >>> s[-3::]
    '往前走'
  • 当使用负索引时,step还为1,则结果无法显示出来.
>>> s
'读书的根本目的是为了让自己明白世界,看清自己,让自己在无所依靠或者无所事事的时候,有一种严肃的力量推动着你往前走'
>>> s[-12:-7:]
'严肃的力量'
>>> s[-12:-7:-1]
''

你可能感兴趣的:(python)