首頁  >  文章  >  後端開發  >  python-切片

python-切片

高洛峰
高洛峰原創
2016-11-21 18:09:281188瀏覽

取一個list或tuple的一部分是十分常見的操作。我們除了利用迴圈透過索引一個個來獲取元素外,python還為我們提供了方便的切片(Slice)操作符:。

我們定義一個list,以供下面舉例使用。

L = ['apple','banaba','peal','orange','water melon']

取一個元素

順序取一個元素

例如L[1]代表第2個元素,即index為1的元素。

逆序取一個元素

list、tuple、string等不僅能從頭開始取元素,還可以從尾端開始取元素。例如:
list[-1]則是指list的倒數第1個。

取多個元素

從頭開始取多個元素

print L[0:3]
        ||____切片结束index,但是不包括该index的元素。
        |____切片起始index。包括该index的元素。
        
# 上述即取L这个list的index为0、1、2的三个元素。
        
print L[ :3]
        |___切片开始的index不填则默认是从list最前端即index=0开始。(事实上也不用空一格,这里只是展示方便。)

上述兩個print函數輸出的都是['apple', 'banaba', 'peal']。切片符號是一對

從尾端開始取多個元素

例如

L[-3:-1]
   |  |____倒数第1个结束,但不包括该元素。
   |_____倒数第3个开始,包括该元素。

哇,我們找到了一個規律: 
就是python切片的時候總是包括前面那個元素,卻不包括最後一個元素。
當然,從尾端開始切片,也支援省略index代表一直切到尾部。例如:

L[-3:]

突然有個神奇的想法,切片的時候開始與結束時的index都省略,那麼會發生什麼事?
即L[:],謎底就是切出了一個跟原來的list一摸一樣的list。

上面所有的例子都是用list來舉例說明的。其實tuple、string都是一樣的。其他程式語言入python、java都提供了許多操作字串的函數,其實python中可以利用切片輕鬆完成。

注意點

python切片的時候[from:to]中的from一定要比to小,才會返回正確的切片,否則會返回一個空的list、tuple或則什麼都沒有(給字符串切片的時候)。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn