Python学习--06切片

@date:2017-01-07 22:42:00

Python里提供了切片(Slice)操作符获取列表里的元素。

示例:

>>> L = [1,2,3,4,5]

# 取前2个元素,传统方法
>>> [L[0],L[1]]
[1,2]

# 取前2个元素,使用切片
>>> L[0:2]
[1,2]

L[0:2]表示,从索引0开始取,直到索引2为止,但不包括索引2。

如果第一个索引是0,还可以省略:

>>> L[:2]
[1,2]

也可以倒数取元素:

>>> L[-2:]
[4,5]

L[-2:]表示倒数第2个开始直到结束。记住倒数第一个元素的索引是-1。

如果不指定开始和结束,只写[:]就可以原样复制一个list:

>>> L[:]
[1,2,3,4,5]

这个技巧很有用,在函数里如果我们不希望改变原列表,就可以使用该技巧复制出一个列表,传给函数。

切片还支持第三个参数,表示每隔几个元素操作:

>>> L[::2]
[1,3,5]

tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以用切片操作,只是操作的结果仍是tuple:

>>> (0, 1, 2, 3, 4, 5)[:3]
(0, 1, 2)

字符串'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以用切片操作,只是操作结果仍是字符串:

>>> 'ABCDEFG'[:3]
'ABC'
>>> 'ABCDEFG'[::2]
'ACEG'

很多编程语言针对字符串会提供很多字符串截取函数,例如substr。Python使用简单的切片操作即可完成同样的功能。

Build by Loppo 0.6.14