Python高级特性------切片(Slice)学习

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

学习完毕。

你可能感兴趣的:(Python高级特性------切片(Slice)学习)