码迷,mamicode.com
首页 > 其他好文 > 详细

[3][高级特性]切片[1]

时间:2017-11-04 19:35:48      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:list   很多   code   函数   xxx   没有   color   字符串   切片   

[3][高级特性]切片[1]

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

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

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

>>> L[0:3]
[Michael, Sarah, Tracy]

L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素。

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

 

>>> L[-2:]
[Bob, Jack]
>>> L[-2:-1]
[Bob]
>>> L = range(100)
>>> L
[0, 1, 2, 3, ..., 99]
>>> L[:10]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> L[-10:]
[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
>>> L[10:20]
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

前10个数,每两个取一个:

>>> L[:10:2]
[0, 2, 4, 6, 8]

所有数,每5个取一个:

>>> L[::5]
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]

 

甚至什么都不写,只写[:]就可以原样复制一个list:

>>> L[:]
[0, 1, 2, 3, ..., 99]

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

>>> (0, 1, 2, 3, 4, 5)[:3]
(0, 1, 2)

 

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

>>> ABCDEFG[:3]
ABC
>>> ABCDEFG[::2]
ACEG

 

在很多编程语言中,针对字符串提供了很多各种截取函数,其实目的就是对字符串切片。Python没有针对字符串的截取函数,只需要切片一个操作就可以完成,非常简单。

小结

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

 

[3][高级特性]切片[1]

标签:list   很多   code   函数   xxx   没有   color   字符串   切片   

原文地址:http://www.cnblogs.com/yinghuali/p/7783992.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!