python 切片
1.python可切片对象的索引方式:正、负索引两部分。
如下图所示,以 a = [0,1,2,3,4,5,6,7,8,9] 为例:
正索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
负索引 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
值 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
(0为起点,9为中点)
2.Python切片操作的一般方式
一个完整的切片表达式包含两个“:”,用于分隔三个参数(start_index、end_index、step),当只有一个“:”时,默认第三个参数step=1。
切片操作基本表达式:object[start_index : end_index : step]
3.例子:
>>> a = [0,1,2,3,4,5,6,7,8,9]
取单个值:
>>> a[0]
0
>>> a[-4]
6
切片也可以取负数,例如:a[2] = a [-8] = 2
>>> a[2]
2
>>> a[-8]
2
切片切的顺序默认是从左到右的,如果step(步长)为负数则会从右往左读取,
切片的开始和结束(strat_index——end_index)和步长(step)是一致的否则会运行会得到空集例如:
>>> a[2:4:-1]
[]
>>> a[-2:2]
[]
同时切片也可以对字符串进行切割:
>>> a = 'hello'
>>> a[1:]
'ello'
a[-1::1]
'olleh'
也可以进行连续切片:
>>> a[:8][2:5][-1:]
[4]
4、总结
1.start_index、end_index、step可同为正、同为负,也可正负混合使用。但必须遵循一个原则,即两者的取值顺序必须是相同的,否则无法正确切取到数据:当start_index的位置在end_index的左边时,表示从左往右取值,此时step必须是正数(同样表示从左往右);当start_index的位置在end_index的右边时,表示从右往左取值,此时step必须是负数(同样表示从右往左)。
2.在利用切片时,step的正负是必须要考虑的,尤其是当step省略时。