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[:]
(b)>>python #
乙個冒號代表預設全選
a='python
'b=a[1:4:]
(b)>>yth #
冒號後沒有寫明故代表預設步長為1
a='python
'b=a[:-1]
(b)>>pytho #
-1代表倒數第乙個位置,因為:前面的初始位置沒有指定,預設為0,就從下標0一直取到最後乙個位置之前
a='python
'c=a[1:-2]
(c)>>yth #
-2代表倒數第二個位置,即從下標1取到倒數第二個位置之前
a='python
'b=a[::-1]
(b)
>>nohtyp #
前兩個冒號和上面一致,就是確定起始位置和終止位置
#第三個引數-1是指步長為-1,也就是逆序輸出
#這裡a[::-1]相當於 a[-1:-len(a)-1:-1],也就是從最後乙個元素到第乙個元素
#所以[::-1]經常用來對乙個陣列進行逆序輸出
a='python
'b=a[1:4:-1]
(b)
>>
#這裡什麼也沒有輸出,因為按照給定的步長是無法從下標1走到4的,所以輸出為空但不會報錯
a='python
'b=a[-2:-7:-2]
(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 這段...