Python切片操作

切片

一个list或tuple的部分元素是非常常见的操作。比如,一个list如下:

>>> L = [Michael,Sarah,Tracy,Bob,Jack]

 

 取前3个元素,应该怎么做?

笨办法:

>>> [L[0],L[1],L[2]]
[Michael,Tracy]

 如果列表长度为1000,想要取出前index为100-200的元素,这种方法就不太方便。当然可以用循环来实现,但是十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。

 

例(1):

取出列表前三个元素:

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

 

也可以从索引1开始,取出2个元素出来:

>>> L = [Michael,Jack]
>>> L[1:3]
[Sarah,Tracy]

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

>>> L = [‘Michael‘,‘Sarah‘,‘Tracy‘,‘Bob‘,‘Jack‘
>>> L[-2:]
[Bob,Jack]
>>>

 例(2):

切片也可以跳着取值,比如每个两个取一个值,每5个取一个值,试试:

先用list()函数创建一个列表:

>>> L=list(range(100))
>>> L
[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99]
>>>

取出所以偶数,L[::2]省略的参数,认值为0

>>> L[::2]
[0,2,98]
>>>

前20个数每个5个取一个数;

>>> L[0:20:5]
[0,15]
>>>

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

>>> T[0:3]
(1,3)
>>>

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

>>> L=ABCDEF
>>> L[0:5]
ABCDE
>>>

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...