这章我们学习一个新的字符串操作,切片。
切片其实是索引的拓展应用,索引是取字符串中的某一个字符,而切片顾名思义,就是根据索引把字符串中的一段字符给切下来。生成一个新的字符串。
虽然说是切下来,但其实就是复制,不是剪切出来。所以原有的字符串并不会发生改变。
我还是用上章的好好学习,天天向上。的字符串操作切片。我要复制good。
info = 'good good study day day up'
print(info[0:4])
为什么会是4号索引,因为这里有个顾头不顾尾原则,和我们前面学range是一样的。我们继续打印info,看看它整体有没有变化。
一点变化都没有,所以切片只是复制!把复制出来的字符串,放到了新的内存空间里。
切片也能用负数,和前面讲的反向索引取值一样。我要取后面的day up。
print(info[-6:-1])
但是这里没有取到最后一个字符p,因为顾头不顾尾!
还是上面的代码,我把4去掉,这就代表从0开始,后面全部取完。
print(info[0:])
我把0去掉,就剩下4,代表4前面的全部取到。
print(info[:4])
如果你冒号两边什么都不写,那就是字符串全部取到。
print(info[:])
切片还有一个操作,就是指定步长,和前面range是一样的,但是用法不一样。range括号里面是逗号,但是切片是冒号。
print(info[0:20:3])
这个意思就是从0开始,每次取值都是加3步,最后取到第20号,但是第20号是d,所以取不到。
我用表格给显示,就清楚了。
然后我们再来打印,看看是不是我们分析的那样。
步长讲完之后,还有一个叫反向步长。
还是刚才的0:4,我在后面加上一个-1。
print(info[0:4:-1])
什么都打印不出来,这是因为这行代码是从0到4,也就是从左往右取,但是步长-1与偶表示从右往左,这就和你往前走四步,然后脚往后迈一样。不可能做到的。
所以要把0和4互相交换位置,不过要注意的是从右往左,4是空格,又是顾头不顾尾,所以第一个g取不到。所以结果就是空格doo,我们打印一下,看看是不是我们分析的结果。
print(info[4:0:-1])
结果和我们分析的一样。
还有最后一个操作,我们括号里什么都不写,然后最后写-1。这就表示从0开始什么都取到,但是倒着取。
print(info[::-1])
到这里我们就把切片讲完了,可以自己多练习联系!
未经允许不得转载:445IT之家 » Python 字符串详解之切片