Python之字符串切片(String Slice)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cadi2011/article/details/84538769

1、切片操作可以从一个字符串中,截取一个字符串,Python牛掰之处,好方便

2、看下基本的语法,这是一个全包括的状态

[start:end:step]

3、默认的几种用法

先提及几个关键概念:
a、第一个字符的下标是0,即从左到右,是从0开始,然后1、2、3、4、5
b、最后一个字符到下标是-1,即从右到左,是从-1开始,然后-1、-2、-3、-4、-5

因为第一个字符是0,第二个字符是1,1 = 0 + 1, 如果是反方向的话(按照循环来看),坐标应该是-1 = 0 - 1,所以这样的理论相当正确

[:end]   //省略start,默认从起始偏移量start、即下标0开始,一直到偏移end处,记住一定是不包含end下标的字符的哦

[start:] //省略end,默认从下标start开始,一直到省略到下标end处,end的默认值是字符串的长度或者为-1【错误的】(因为不包含最后一个end位置的下标,所以输出整个字符串,但是肯定end的默认值不可能是-1,那样就不会输出整个字符串了)

[start:end] //即有start、也有end,输出从start下标到end下标处的字符串,记得不包含end下标的字符哈

[start:end:step] //这次多了一个step、step如果不加的话,默认步长肯定是0,毕竟是要把线性表输出的把,如果改变了step,那就可以是跳跃setp个元素输出一个元素了

[:] //忘记介绍这种了,一个下标也不填写的情况,默认是start == 0、end == 字符串长度、step == 0,输出整个字符串

4、转载几种特殊的用法

提取最后N个字符:
>>> letter = 'abcdefghijklmnopqrstuvwxyz'
>>> letter[-3:]
'xyz'

从开头到结尾,step为N:
>>> letter[::5]
'afkpuz'


将字符串倒转(reverse), 通过设置步长为负数:
>>> letter[::-1]
'zyxwvutsrqponmlkjihgfedcba'


如果自己手写字符串倒转(reverse),根据反向从-1开始的情况,所以len(letter) - 1 ,因为正向毕竟是从0开始的,所以字符串长度做end就够了,而反向是从-1开始的,因为毕竟end是不包含自己的嘛
>>> letter[-1:-len(letter)- 1: -1]

猜你喜欢

转载自blog.csdn.net/cadi2011/article/details/84538769