Python高级特性切片(Slice)操作详解
切片操作首先支持下标索引,通过[N:M:P]操作
索引正向从0开始,逆向从-1开始
N:切片开始位置
M:切片结束位置(不包含)
P:指定切片步长,为正数表示按照指定步长正向切片,为负数反之
一、列表的切片操作
列表切片后还是列表
通过列表生成器定义一个列表:
In[2]:a=[nforninrange(10)]
In[3]:a
Out[3]:[0,1,2,3,4,5,6,7,8,9]
通过切片浅拷贝对象:
In[4]:a[:]
Out[4]:[0,1,2,3,4,5,6,7,8,9]
In[5]:a[::]
Out[5]:[0,1,2,3,4,5,6,7,8,9]
指定开始切片位置:
In[6]:a[1:]
Out[6]:[1,2,3,4,5,6,7,8,9]
In[7]:a[1::]
Out[7]:[1,2,3,4,5,6,7,8,9]
指定切片范围(不包含结束):
In[8]:a[1:5]
Out[8]:[1,2,3,4]
In[9]:a[2:6:]
Out[9]:[2,3,4,5]
指定步长切片:
In[10]:a[0:9:3]
Out[10]:[0,3,6]
In[11]:a[0:9:2]
Out[11]:[0,2,4,6,8]
指定步长方向:
In[12]:a[9:0:-2]
Out[12]:[9,7,5,3,1]
In[13]:a[9:0:-3]
Out[13]:[9,6,3]
通过切片逆置列表:
In[15]:a[::-1]
Out[15]:[9,8,7,6,5,4,3,2,1,0]
二、元组切片
元组切片后还是元组,用法和列表切片一样,但是一点需要注意
In[17]:b=(nforninrange(5))
In[18]:b
Out[18]:at0x00000206445ED780>
#推到式通过小括号()以后就不是元组了,是生成器的另一种形式
In[19]:b=tuple(nforninrange(5))
In[20]:b
Out[20]:(0,1,2,3,4)
In[21]:b[::-1]
Out[21]:(4,3,2,1,0)
In[22]:b[0:2:]
Out[22]:(0,1)
三、字符串切片
字符串切片之后还是字符串,用法也和列表切片一致
In[23]:c="hello,world"
In[24]:c[::-1]
Out[24]:'dlrow,olleh'
In[25]:c[0:5:]
Out[25]:'hello'