Python高级特性------切片(Slice)学习
1.定义一个list:
L = [‘tom’,‘jim’,‘good’,‘bad’,‘two’]
1.1 取其前三个元素:
方法一:
#这个方法比较简单
>>> L[0],L[1],L[2]
>>> L = ['tom','jim','good','bad','two']
>>> L[0]
'tom'
>>> L[1]
'jim'
>>> L[2]
'good'
>>>
1.2 方法二
其中,L[0:3]表示从索引0开始,知道索引3为止,但是不包括索引3,即索引0,1,2.
>>> L[0:3]
['tom', 'jim', 'good']
1.3 方法三
L[:3] #高级一点点,从0取到2,不包括3
图:
>>> L[:3]
['tom', 'jim', 'good']
>>>
1.4方法四
如果元素非常多,我们需要取其前N个元素,怎么办?
可能会想到用循环:
>>> L = ['tom','jim','good','bad','two']
>>> r = [] #先建一个空列表r
>>> n=3
>>> for i in range(n):
... r.append(L[i]) #注意缩进,与i一列对齐
...
>>> r
['tom', 'jim', 'good']
>>>
2 L[1:1] #取第1位开始,但又不包括第1位,那不就是[],没东西么?
[]
如图,同理
>>> L[1:1]
[]
>>> L[3:3]
[]
>>>
3.Python也支持倒数取数L[-1],我们来看看是否支持倒数切片:(记住,倒数第一个索引是-1)
>>> L = ['tom','jim','good','bad','two']
>>> L[-2:] #倒着取,从倒数第2开始取
['bad', 'two']
>>> L[:-1] #取,到倒数第1不要,这个在简易计算器中的back(←)用到过
['tom', 'jim', 'good', 'bad']
>>>
4.来一个大数据啊,哈哈
>>> a=list(range(100)) 通过range函数创建一个0-99的数列,组成一个list赋值给a
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ......97, 98, 99]
>>> a[:10] #取前十个
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[-10:] #取后十个
[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
>>> a[10:20] #取之间
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> a[:10:2] #从头取到10,步长为2
[0, 2, 4, 6, 8]
>>> a[5:15:3] #从第5位取到15,步长为3
[5, 8, 11, 14]
>>> a[::10] #从头取到尾,步长为10
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
>>> a[:] #等于a ,全部取,步长为默认1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ...... 97, 98, 99]
>>>
--------以上是list列表的切片-------------
5.元组
tuple也支持切片特性,只是结果也是一个tuple
>>> n=(1,3,5,7)
>>> n[:3]
(1, 3, 5) #还是元组tuple
>>>
6.字符串也支持切片,只是结果也是一个字符串。
>>> a='xgjisagoodboy'
>>> a[:3]
'xgj' #返回是字符串
>>>
7.利用切片功能,编写一个函数qp(str),类似Python中的strip()功能——去除字符串首尾的空格:
>>> def qp(str):
... while str[:1]==' ':
... str = str[1:]
... while str[-1:] == ' ':
... str = str[:-2]
... return str
...
>>> qp(' xgj is a good boy! ')
#操作如下
>>> def qp(str):
... while str[:1]==' ':
... str = str[1:]
... while str[-1:] == ' ':
... str = str[:-2]
... return str
...
>>> qp(' xgj is a good boy! ')
'xgj is a good boy!' #qp函数,是自定义函数,操作后是没有空格的
>>> str #注意str仍是有空格的
' xgj is a good boy! '
>>>
学习完毕。