参考:
###################################################
对经常制定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,大大简化这种操作
取一个list或tuple的部分元素:
L=["Michael", "Sarah", "Tracy", "Bob", "Jack"]
取前3个元素
H=[L[0], L[1], L[2]]
或
H=[L['Michael'], L['Sarah'], L['Tracy']]
取前N个元素,也就是索引为0-(N-1)的元素
r=[]
n=3
for i in range(n):
r.append(L[i])
使用Python切片操作
取前3个元素
L[0:3]
或
L[:3]
L[0:3]表示从索引0开始取,直到索引3为止,但不包括索引3.即索引0,1,2,正好是3个元素。
如果第一个元素是0,还可以省略
从索引1开始,取出2个元素:
L[1:3]
Python同样支持倒数切片:
倒数第一个元素的索引是-1
所以索引从-1开始可以省略
L[-2:] #说明取出元素索引为-2, -1
L[-2:-1] #说明取出元素索引为-2
通过切片可以轻松的取出某一段数列:
先创建一个0-99的数列:
L=range(100)
取出前10个数:
L[:10]
或
L[0:10]
取出后10个数:
L[-10:]
或
L[90, 100]
取出前11-20个数:
L[10:20]
前10个数,每两个取一个:
L[:10:2]
所有数,每5个取一个:
L[::5]
只写[:]可以原样复制一个list:
L[:]
###################################
tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以进行切片操作,操作结果还是tuple
字符串‘xxx’或Unicode字符串u'xxx'也可以看成是一种list,每个元素就是一个字符。因此,字符串也可以进行切片操作,其结果仍是字符串