Python之路 特別篇 Python切片

2022-07-18 15:57:27 字數 1774 閱讀 4627

切片操作符是序列名後跟乙個方括號,方括號中有一對可選的數字,並用冒號分割。

注意:數是可選的,而冒號是必須的。

consequence[start:end:step]

切片操作符中的第乙個數(冒號之前)表示切片開始的位置,第二個數(冒號之後)表示切片到**結束,第三個數(冒號之後)表示切片間隔數

如果不指定第乙個數,python就從序列首開始。如果沒有指定第二個數,則python會停止在序列尾。

☛ (序列首與序列尾 依據step方向決定 !)

注意: 返回的序列從開始位置開始 ,剛好在結束位置之前結束。

即開始位置是包含在序列切片中的,而結束位置被排斥在切片外。( 前閉後開 !)

>>> a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> a[:]

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> a[::2]

[1, 3, 5, 7, 9]

>>> a[1:6:2]

[2, 4, 6]

>>> a[8:3:-1]

[9, 8, 7, 6, 5] # 右-》左切片,step 為1,a[8]=9, a[7]=8, ... a[4]=5, 8-3=5個

>>> a[10:0:-2]

[10, 8, 6, 4, 2] # 右-》左切片, 切片的時候,不存在 index 越界情況

>>> a[0:10:-2] # start < end , step 為負, 方向為右-》左,第乙個是 a[0], a[0]的左邊就再也沒有值了。為空

>>> a[::-2] # a[:]表示取所有,step 為負就反方向

[10, 8, 6, 4, 2]

>>> a[5::-2] # 右-》左,結果等價 a[5:0:-2] a[5]=6, a[3]=4, a[1]=2

[6, 4, 2]

>>> a[:5:-2] # 右-》左, 等價於 a[9:5:-2] a[9]=10, a[7]=8

[10, 8]

總結:1.start 和 end 不填,或者其中乙個不填,都是指代獲取所有,然後根據 step 確定方向。

2.step:表示取值的步長,預設為1,步長值不能為0。

3.因此任意乙個序列結構資料的索引範圍為 -len(consequence) 到 len(consequence)-1 範圍內的連續整數。

4.當使用冒號(:)對序列進行切片取值時,你所輸入的無論是start_index或者end_index,都不必侷限於 -len(consequence) 到 len(consequence)-1 之間因為只有當你輸入的索引號處於這個區間時才真正有效,而當你輸入的索引號超出這個範圍時,python會自動將start_index或end_index設定為預設值(即第乙個物件和最後乙個物件)。

>>> a=[1,2,3,4,5,6,7]   

>>> a[len(a)-1]

7

>>> a[-len(a)]

1

其中a[len(a)-1]等同於a[-1],a[-len(a)]等同於a[0],分別表示序列的最後乙個和第乙個物件。

Python之路 特別篇 Python反射

說反射之前先介紹一下 import 方法,這個和import匯入模組的另一種方式 1.import commons 2.import commons 如果是多層匯入 1.from list.text import commons 2.import list.text.commons fromlist...

python 協程之特別篇

python通過yield提供了對協程的基本支援,但是不完全。而第三方的gevent為python提供了比較完善的協程支援。gevent是第三方庫,通過greenlet實現協程,其基本思想是 當乙個greenlet遇到io操作時,比如訪問網路,就自動切換到其他的greenlet,等到io操作完成,再...

小猿日記(5) 520特別篇

今天就不聊啥工作,啥日常了。工作 敲鍵盤 日常 睡大覺 健身 早上吃大豆包子,喝著紅豆鮮奶。手敲鍵盤,眼觀螢幕,心繫佳人。遇見了你 星星開始閃爍 陽光也是橙子的芬香 微風輕撫 想象是與你遊覽春光 聽自然的妙不可言 徜徉於原野之間嬉笑 因為是你 我看見了未來 那是在你眼中 我才看見了自己的美麗 無聲無...