python陣列冒號取值操作

2022-06-10 07:51:11 字數 3329 閱讀 9474

a[i:j]
這裡的i指起始位置,預設為0;j是終止位置,預設為len(a),在取出陣列中的值時就會從陣列下標i(包括)一直取到下標j(不包括j)

在乙個冒號的情況下若出現負數則代表倒數某個位置

a[i:-j]
這裡就是從下標i取到倒數第j個下標之前(不包括倒數第j個下標位置的元素)

a[i:j:h]
這裡的i,j還是起始位置和終止位置,h是步長,預設為1

若i/j位置上出現負數依然倒數第i/j個下標的位置,h若為負數則是逆序輸出,這時要求起始位置下標大於終止位置

在兩個冒號的情況下若h為正數,則i預設為0,j預設為len(a);

若h為負數,則i預設為-1(即最後乙個位置),j預設為-len(a)-1(下標0的前乙個位置,這樣就能輸出到下標0了)

ok,接下來就對冒號更多靈活的用法舉例說明

a='python'

b=a[:]

print(b)

>>python #乙個冒號代表預設全選

a='python'

b=a[1:4:]

print(b)

>>yth #冒號後沒有寫明故代表預設步長為1

a='python'

b=a[:-1]

print(b)

>>pytho #-1代表倒數第乙個位置,因為:前面的初始位置沒有指定,預設為0,就從下標0一直取到最後乙個位置之前

a='python'

c=a[1:-2]

print(c)

>>yth #-2代表倒數第二個位置,即從下標1取到倒數第二個位置之前

a='python'

b=a[::-1]

print(b)

>>nohtyp #前兩個冒號和上面一致,就是確定起始位置和終止位置

#第三個引數-1是指步長為-1,也就是逆序輸出

#這裡a[::-1]相當於 a[-1:-len(a)-1:-1],也就是從最後乙個元素到第乙個元素

#所以[::-1]經常用來對乙個陣列進行逆序輸出

a='python'

b=a[1:4:-1]

print(b)

>>

#這裡什麼也沒有輸出,因為按照給定的步長是無法從下標1走到4的,所以輸出為空但不會報錯

a='python'

b=a[-2:-7:-2]

print(b)

>>otp #這裡起始位置是-2,終點是-7(不包括,所以輸出到-6位置),步長為-2

a = np.array([[1,2,3],[4,5,6],[7,8,9],[11,12,13]])

print(a[::-1,2:0:-1])

>>[[13 12]

[ 9 8]

[ 6 5]

[ 3 2]]

#對於多維陣列也是一樣的,可以分別對每一維進行操作,中間用逗號分隔

最後再看乙個舉例

a[i:j]
這裡的i指起始位置,預設為0;j是終止位置,預設為len(a),在取出陣列中的值時就會從陣列下標i(包括)一直取到下標j(不包括j)

在乙個冒號的情況下若出現負數則代表倒數某個位置

a[i:-j]
這裡就是從下標i取到倒數第j個下標之前(不包括倒數第j個下標位置的元素)

a[i:j:h]
這裡的i,j還是起始位置和終止位置,h是步長,預設為1

若i/j位置上出現負數依然倒數第i/j個下標的位置,h若為負數則是逆序輸出,這時要求起始位置下標大於終止位置

在兩個冒號的情況下若h為正數,則i預設為0,j預設為len(a);

若h為負數,則i預設為-1(即最後乙個位置),j預設為-len(a)-1(下標0的前乙個位置,這樣就能輸出到下標0了)

ok,接下來就對冒號更多靈活的用法舉例說明

a='python'

b=a[:]

print(b)

>>python #乙個冒號代表預設全選

a='python'

b=a[1:4:]

print(b)

>>yth #冒號後沒有寫明故代表預設步長為1

a='python'

b=a[:-1]

print(b)

>>pytho #-1代表倒數第乙個位置,因為:前面的初始位置沒有指定,預設為0,就從下標0一直取到最後乙個位置之前

a='python'

c=a[1:-2]

print(c)

>>yth #-2代表倒數第二個位置,即從下標1取到倒數第二個位置之前

a='python'

b=a[::-1]

print(b)

>>nohtyp #前兩個冒號和上面一致,就是確定起始位置和終止位置

#第三個引數-1是指步長為-1,也就是逆序輸出

#這裡a[::-1]相當於 a[-1:-len(a)-1:-1],也就是從最後乙個元素到第乙個元素

#所以[::-1]經常用來對乙個陣列進行逆序輸出

a='python'

b=a[1:4:-1]

print(b)

>>

#這裡什麼也沒有輸出,因為按照給定的步長是無法從下標1走到4的,所以輸出為空但不會報錯

a='python'

b=a[-2:-7:-2]

print(b)

>>otp #這裡起始位置是-2,終點是-7(不包括,所以輸出到-6位置),步長為-2

a = np.array([[1,2,3],[4,5,6],[7,8,9],[11,12,13]])

print(a[::-1,2:0:-1])

>>[[13 12]

[ 9 8]

[ 6 5]

[ 3 2]]

#對於多維陣列也是一樣的,可以分別對每一維進行操作,中間用逗號分隔

最後再看乙個舉例

python陣列冒號取值操作

a i j 這裡的i指起始位置,預設為0 j是終止位置,預設為len a 在取出陣列中的值時就會從陣列下標i 包括 一直取到下標j 不包括j 在乙個冒號的情況下若出現負數則代表倒數某個位置 a i j 這裡就是從下標i取到倒數第j個下標之前 不包括倒數第j個下標位置的元素 a i j h 這裡的i,...

python冒號錯誤 python冒號錯誤語法無效

問題1看看錯誤 file line 3 def init self,name syntaxerror invalid syntax 在def和 init 之間應該有乙個空格,因此 init 函式的定義應該是 問題2 else語句不採用if或 do之類的表示式,因此會導致以下語法錯誤 file lin...

python處理陣列時候冒號的妙用

定義乙個numpy模組 import numpy as np x np.array 1,2,3 5,6,7 7,8,9 print x out 64 array 1,2,3 5,6,7 7,8,9 現在用冒號完成反轉 print x 1 out 65 3 2 1 7 6 5 9 8 7 x 1 這段...