Python基础学习(一)之切片操作

时间:2021-05-28 21:26:18

Python的宗旨,一行代码能实现的功能,绝对不写5行代码,始终记住,代码越少,开发效率越高.

取一个list或者tuple的部分元素是很常见的操作:

>>>L=['Beijing','Shanghai','Wuhan','Changsha','Tianjing'];

如果要取前面的三个元素,该怎么做?

>>>temp=[]

>>>n=3

>>>for i in range(n):

...           r.append(L[i])

...

>>>r

['Beijing','Shanghai','Wuhan']Python基础学习(一)之切片操作

但是对于这种经常指定索引范围的操作,用循环过于繁琐,Python中提供了切片,一行代码可以搞定:

>>>L[0:3]

['Beijing','Shanghai','Wuhan']

L[0:3] 表示,从索引 0 开始取,直到索引 3 为止,但不包括索引 3 。即索
引 0 , 1 , 2 ,正好是 3 个元素。如果第一个索引是 0 ,还可以省略:

类似的,既然 Python 支持 L[-1] 取倒数第一个元素,那么它同样支持倒
数切片,试试:
>>> L[-2:]
['Changsha', 'Tianjing']
>>> L[-2:-1]
['Changsha']

倒数第一个元素的索引是一.

创建一个0-99的数列:

Python基础学习(一)之切片操作


tuple 也是一种 list,唯一区别是 tuple 不可变。因此,tuple 也可以用切
片操作,只是操作的结果仍是 tuple:
>>> (0, 1, 2, 3, 4, 5)[:3]
(0, 1, 2)
字符串 'xxx' 也可以看成是一种 list,每个元素就是一个字符。因此,字
符串也可以用切片操作,只是操作结果仍是字符串:
>>> 'ABCDEFG'[:3]
'ABC'
>>> 'ABCDEFG'[::2]
'ACEG'


有了切片操作,很多地方循环就不再需要了,Python的切片非常灵活,一行代码就可以实现很多行循环才能完成的操作,