切片需要注意的点是,比如L[1:2]
只取index为1的那个元素,换句话说就是右边那个数值不取。这种正数表示的很容易理解运用,但是在负数表示index时候容易忽视,比如:L[-2:-1]
只取index为-2的那个元素,即倒数第二个。倒数第一个不取。L[-2:]
这种取-2,-1.
- 基础用法:
L = ['A','B','C','D','E']
L[0:3]
#输出:'A','B','C'
- 从0开始取时简写法
L = ['A','B','C','D','E']
L[:3]
#输出:'A','B','C'
- 倒数取法
L = ['A','B','C','D','E']
L[-1]
#输出:'E'
L[-2:-1]
#输出:'D'
L[-2:]
#输出:'D','E'
- 每隔2个取一个
L = ['A','B','C','D','E']
L[::2]
#输出:'A','C','E'
- 全取
L = ['A','B','C','D','E']
L[:]
#输出:'A','B','C','D','E'
- 有意思的是:不可变的tuple也可以有切片操作
(0, 1, 2, 3, 4, 5)[:3]
(0, 1, 2)
#这里值得注意的是直接在list后面跟着切片用法,看着奇怪,其实恰恰是最本质的用法。不要因为用变量名用惯了,看不到这个点。
- 字符串切片
有了这个,其他语言提供的诸如substring就相形见绌了。
>>> 'ABCDEF'[:3]
'ABC'
>>> 'ABCDEF'[::2]
'ACE'
这个用法,非常能体现Python处理问题的优雅。