切片操作
对于列表的切片和字符串类似。切片是python序列及其重要的操作,适用于列表、元组、字符串等。切片格式如下:
切片操作可以让我们快速提取子列表或修改。标准格式:
[起始偏移量start,终止偏移量end,步长step]
注意:当步长省略时顺便可以省略第二个冒号
典型操作(三个最为整数的情况)如下:
操作和说明 | 示例 | 结果 |
[:]提取整个列表 | [10,20,30][:] | [10, 20, 30] |
[start:]从start索引开始到结尾 | [10,20,30][1:] | [20,30] |
[:end]从头开始直到end-1 | [10,20,30][:2] | [10, 20] |
[start:end]从start到end-1() | [10,20,30,40][1:3] | [20,30] |
[start:end:step]从start开始到end-1,步长是step | [10,20,30,40,50,60,70][1:6:2] | [20, 40, 60] |
其他操作(三个量为负数)的情况:
示例 | 说明 | 结果 |
[10, 20, 30, 40, 50, 20, 30, 20, 30][-3:] | 倒数三个 | [30, 20, 30] |
[10, 20, 30, 40, 50, 20, 30, 20, 30][-5:-3] | 倒数第三个到倒数第五个(包头不包尾) | [50, 20] |
[10, 20, 30, 40, 50, 20, 30, 20, 30][::-1] | 步长为负,从右到左反向提取 |
切片操作时,起始偏移量和终止偏移量不在[0,字符串长度-1]找个范围,也不会报错。起始偏移量 小于 0 则会当作 0,终止偏移量大于 长度-1 会被当成-1,例如
>>> [10,20,30,40][1:30]
[20, 30, 40]
正常输出结果,没有报错。