微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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
>>>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐