0%

【Python】切片

Python中提供强大的数据处理功能,其中常用的就有切片。它可以对List、字符串进行切割来得到希望获取的结果。

方法1:

list[起始索引:结束索引] 该操作将会返回包括起始索引不包括结束索引的结果 如

1
2
3
>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
>>> L[0:3]
['Adam', 'Lisa', 'Bart']

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

1
2
>>> L[:3]
['Adam', 'Lisa', 'Bart']

只用一个 : ,表示从头到尾:

1
2
>>> L[:]
['Adam', 'Lisa', 'Bart', 'Paul']

方法2:

list[起始索引:结束索引:跳选个数] 跳选个数表示每隔这个数就选一个比如1…..10,跳选个数为3,那么输出结果为1,4,7,10 代码表示则为:

1
2
3
>>> L=range(1,11)
>>> L[::3]
[1,4,7,10]

range(x,y) 返回从x(包括)到y(不包括)的List链表

倒序切片

对于list,既然Python支持L[-1]取倒数第一个元素,那么它同样支持倒数切片,试试:

1
2
3
4
5
6
7
8
9
10
11
12
13
>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']

>>> L[-2:]
['Bart', 'Paul']

>>> L[:-2]
['Adam', 'Lisa']

>>> L[-3:-1]
['Lisa', 'Bart']

>>> L[-4:-1:2]
['Adam', 'Bart']

记住倒数第一个元素的索引是-1。倒序切片包含起始索引,不包含结束索引。

字符串操作

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

1
2
3
4
5
6
>>> 'ABCDEFG'[:3]
'ABC'
>>> 'ABCDEFG'[-3:]
'EFG'
>>> 'ABCDEFG'[::2]
'ACEG'

x.upper() 将字符串/字符链表x中的所有小写字母转换为大写字母