Python中步長索引解析

2021-08-02 23:44:25 字數 1140 閱讀 7757

在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 這叫 切片,記住切片取數時是取頭不取尾...