python分片的步長 Python的分片操作

2021-10-19 02:02:48 字數 1371 閱讀 3906

在列表中有一種操作叫做分片

一般形式:

l2=[4,6,1,7,9]

e = l2[2:4]

print(e)

該**執行結果如下:[1, 7]

從下標來看可以很容易的知道下標二對應的正好是元素3,值1

但是,卻沒有下標4的元素5,值9

所以,我們得出乙個結論:

python的分片操作含左不含右

操作範圍[m,n]—>實際範圍[m,n-1]

假定有乙個list

l = [3,4,5,1,7]

如果我們想要取出其中的元素3,5,7呢?

這裡涉及到了分片操作中的步長引數

形式如下:

l[2:4:1]

分片中的1就是步長引數

整體表示從下標2開始取出,每次+1,到下標3停止

egl2=[4,6,1,7,9]

e = l2[2:5:1]

print(e)

輸出結果:[1,7,9],同時證明了:

分片操作的預設步長引數是1

從上面的例項中我們不難看出分片操作預設的步長引數是正數 ,那我們的步長引數是否可以為負數呢?同理我們的下標是否可以為負呢?

一.下標為負

l4 = [3,5,1,6,2]

e4 = l4[-4:-2]

print(e4)

輸出結果為:[5,1]

這時,我們需要普及乙個知識:

當下標為負時,列表最後乙個元素的下標是-1

即:2的下標是-1,並且和下標為正時一樣,越往右邊下標值越大,所以下標為負時,最大下標為-1(注意,當步長為正數時,分片操作的起始下標必須小於終止下標,可以理解為逐漸加上正數的步長的話下標是從左往右增大的)

陣列l4中元素對應的下標分別是3 --> -5 , 5 --> -4 , 1 --> -3 , 6 --> -2 , 2 --> -1

但是,通過l4的例項輸出,我們又可以看到,輸出順序仍然是[5,1],從左往右輸出

這時,就和分片操作的預設步長有關了

我們在上述中說到了分片操作的預設為1,所以易得遇到下標-4,取出-4的元素,然後-4+1進行偏移,取出下標-3的元素,通過**[m,n]–>[m,n-1]**,可知-2-1 == -3,所以下標到-3即停止,最終取出的是下標為-4和-3的元素

那麼,如果我們想要分片操作從右往左執行呢?

上面提到,分片操作預設的步長是1,從左往右執行,那如果步長為-1,是不是就從右往左執行了呢

l5=[4,5,7,1,9]

e5 = l5[-2:-4:-1]

print(e5)

輸出結果:[1,7]

在上面我們提到過,步長為正數時,分片起始下標必須小於終止下標,但是當步長為負數時,分片起始下標必須大於分片終止下標(不然返回空列表)

python列表之分片 步長 捷徑(二)

python如何取一定範圍的列表元素呢?詳情看示例1 3 直接看 1.分片 1 取一定範圍的元素 2 lucky number 0,1,2,3,4,5,6 3 分片4print lucky number 1 5print lucky number 5 1 6print lucky number 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...