Python3之切片及內置切片函數slice

     切片python

    取一個list或tuple的部分元素是很是常見的操做。好比,一個listapp

L=[0,1,2,3,4,5,6,7,8,9]

  取前3個元素,應該怎麼作函數

       笨方法,一個個列出來blog

>>> [L[0],L[1],L[2]]
[0, 1, 2]

  假如須要列出N個可是N很大 索引

  循環方法字符串

>>> r=[]
>>> n=3
>>> for i in range(n):
...   r.append(L[i])
... 
>>> r
[0, 1, 2]

  對於常常去指定索引範圍的操做,用循環十分繁瑣,所以pythone提供了切片操做符能大大簡化操做class

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

  L[0:3]表示,從索引0開始,直到索引3,可是不包含索引3,及索引0,1,2 一共3個元素循環

  若是第一個索引爲0能夠省略語法

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

  也能夠從索引1開始,取出2個元素來方法

>>> L[1:3]
[1, 2]

  相似也能夠倒數切片,-1表明倒數第1個索引

>>> L[-2:]
[8, 9]
>>> L[-2:-1]
[8]

  默認取的間隔是1也能夠定義,隔幾個去一個

  從索引0取到索引9沒隔兩個取一個

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

  什麼都不寫,只寫[:]就能夠原樣複製一個list

>>> L[:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

  tuple也是一個list,惟一區別是tuple不可變.tuple切片也是一個tuple

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

  字符串'xxx'也是能夠當作是一種list,也能夠切片返回的是一個字符

>>> 'abcde'[:3]
'abc'

  

  切片函數slice

  語法

class slice(stop)
class slice(start, stop[, step])

  參數說明

start--起始位置  默認爲None
stop--結束位置   自定義
step--間距         默認爲None間距爲1

  

>>> myslice=slice(3)
>>> myslice
slice(None, 3, None)
>>> L[myslice]
[0, 1, 2]
>>> print(myslice.start)
None
>>> print(myslice.step)
None
>>> print(myslice.stop)
3

  以上

myslice=(3)
等價於
myslice=slice(0,3,1)

  自定義間隔step

#切片範圍爲0-10 間距爲2
>>> myslice=slice(0,10,2)
#查看參數
>>> myslice
slice(0, 10, 2)
>>> L[myslice]
[0, 2, 4, 6, 8]
相關文章
相關標籤/搜索