本文实例讲述了Python切片操作。分享给大家供大家参考,具体如下:
在很多编程语言中,针对字符串提供了截取函数,其实目的就是对字符串切片。Python没有针对字符串的截取函数,只需要切片操作就可以完成。
切片操作符是序列名后跟一个方括号,方括号中有3个可选的数字,并用冒号分割,数是可选的,而冒号是必须的。
切片操作符中的第一个数表示切片开始的位置,第二个数表示切片到哪里结束,第三个数表示切片步长。
如果不指定第一个数,Python就从序列首开始。如果没有指定第二个数,则Python会停止在序列尾。如果没有指定第三个数,则步长默认为1。
注意,返回的序列从开始位置开始 ,刚好在 结束 位置之前结束。即开始位置是包含在序列切片中的,而结束位置被排斥在切片外,构成了一个前闭后开区间 [ )
例如:
1》正向切片(步长是正整数)
1
2
3
4
5
6
7
8
9
10
11
|
>>> s = 'love python!'
>>> s[ 2 : 9 : 2 ] #切片区间 [2,9),步长是2
'v yh'
>>> s[: 5 ] #切片区间 [0,5),步长默认是1
'love '
>>> s[ 4 :] #切片区间 [4,len(s)),步长默认是1
' python!'
>>> s[:] #切片区间 [0,len(s)),步长是1,返回整个序列的拷贝
'love python!'
>>> s[:: 2 ] #切片区间是 [0,len(s)),步长是2
'lv yhn'
|
Python序列倒数第一个元素的索引是-1,python同样支持负数索引切片。如:
1
2
3
4
5
6
7
8
|
>>> s
'love python!'
>>> s[ - 5 : - 2 ] #切片区间 [-5,-2),步长默认是1
'tho'
>>> s[: - 1 ] #除了最后一个元素,其他的元素全部返回
'love python'
>>> s[ - 8 :: 2 ] #切片区间 [-8,-1],步长是2
' yhn'
|
2》反向切片(步长是负数),如:
1
2
3
4
5
6
7
8
|
>>> s
'love python!'
>>> s[ 9 : 2 : - 1 ]
'ohtyp e'
>>> s[ - 1 :: - 1 ] #返回序列的逆序序列
'!nohtyp evol'
>>> s[:: - 1 ] #返回序列的逆序序列
'!nohtyp evol'
|
另外,切片除了可以作用于字符串,也可以作用于元组和列表。
希望本文所述对大家Python程序设计有所帮助。
原文链接:http://blog.csdn.net/sxingming/article/details/51474927