在python中使用列表或者元組時,除了會用到索引以後,還經常會遇到切片操作。樓主最近在看《core python programming》,其中第105頁第5點談及到了用步長索引來進行擴充套件的切片操作。
[python]view plain
copy
print?
>>>s = 『abcdefgh』
>>>s[::-1]
』hgfedcba』
>>>s[::2]
』aceg』
>>>s = 'abcdefgh'
>>>s[::-1]
'hgfedcba'
>>>s[::2]
'aceg'
在python的序列中(列表和元組都是序列),都可以可以使用切片操作: sequence[start : end : step] 前面兩個好理解,分別為開始索引的位置和結束索引的位置(python中提供兩種索引:從左向右 0 ….. index-1 從右向左 -1 …. -index),關鍵是在這個step的含義。
其實呢,step在這裡表示的是切片的步長(step不能為0,預設為1):
若 step > 0, 則表示從左向右進行切片。此時,start必須小於end才有結果,否則為空。例如: s[0,: 5: 2]的結果是』ace』
若 step < 0, 則表示從右向左進行切片。 此時,start必須大於end才有結果,否則為空。列如: s[5: 0: -1]的結果是』fedcb』
那麼,s[::-1]表示從右往左,以步長為1進行切片; s[::2] 表示從左往右以步長為2進行切片
python中的range()函式和序列的這個特性非常相像。
range()函式可以說是乙個生成序列的函式,例如:
range(5) : 0, 1, 2, 3, 4
range(1, 5):1, 2, 3, 4
上面兩個例子比較容易理解,range()函式中也有最後乙個引數step,比如:range(0,5, 2)則表示0,2,4
range(5,0,-2)表示(5,3,1)可以這麼來理解:首先 ,range(0, 5)會生成一列數(表示為0,1,2,3,4,5): 由於step為-2,會從右向左進行切片步長為2,依次取索引為5,3,1的數,索引為0的不包括在內。
python 切片步長 python 切片步長
python切片 切片 list變數 值下標 結束值下標 什麼意思呢?就是獲取 list中 下標從定義的位置開始獲取資料到 自定義的下標位置結束,但是切片有個規矩就是顧頭不顧尾,舉個例子 kl oppo vivo iphone levovo print kl 0 1 結果 oppo 如果我取list...
python 切片步長
python切片 切片 list變數 值下標 結束值下標 什麼意思呢?就是獲取 list中 下標從定義的位置開始獲取資料到 自定義的下標位置結束,但是切片有個規矩就是顧頭不顧尾,舉個例子 kl oppo vivo iphone levovo print kl 0 1 結果 oppo 如果我取list...
python中步長的使用方法
我們在python中,有時候是需要間斷取數或者其他情況時,這時就需要用到步長了,如下 name a b c d e f g 這是乙個列表,那如果需要取出列表中的數,但是又是間斷取指定數時,此時可以用到步長,如圖 在python中,像print name 1 4 這叫 切片,記住切片取數時是取頭不取尾...