您好,登錄后才能下訂單哦!
小編給大家分享一下python中slice參數的分析示例,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
我們在拿到一個軟件的時候,打開它的屬性欄可以看到很多默認的參數。在計算機中,我們可以把軟件的一些默認值理解為缺省。同樣的,在slice參數中start和stop也都有各自的默認值。這里slice參數是取最大區間的,下面就具體的start和stop分別進行代碼分析。
1.取最大區間
start和stop都是可以缺省的,在缺省的情況下,Python的行為是盡可能取最大區間,具體來說:
按照擴充索引范圍的觀點,start的缺省值是無窮小(),stop的缺省值是無窮大()。
>>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a[:5] [0, 1, 2, 3, 4] >>> a[5:] [5, 6, 7, 8, 9] >>> a[100:] []
2.step為正數
當step為正數時,切片行為很容易理解,start和stop的截斷和缺省規則也與簡單切片完全一致:
>>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a[0:6:2] [0, 2, 4] >>> a[::2] [0, 2, 4, 6, 8] >>> a[:-2:2] [0, 2, 4, 6] >>> a[4::2] [4, 6, 8]
3.step為負數
當step為負數時,切片將其解釋為從start出發以步長|step|逆序索引序列,此時,start和stop的截斷依然遵循前述規則,但缺省發生一點變化,因為我們說過,在缺省的情況下,Python的行為是盡可能取最大區間,此時訪問是逆序的,start應盡量取大,stop應盡量取小,才能保證區間最大,因此:
按照擴充索引范圍的觀點,start的缺省值是無窮大(),stop的缺省值是無窮小()
>>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a[5::-1] [5, 4, 3, 2, 1, 0] >>> a[:4:-2] [9, 7, 5] >>> a[::-1] [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
記住幾點:
切片結果是通過 start、stop 處理后的值決定的,從 start 開始止于 stop 不包括 stop,[start, stop)
如果 step > 0,從 start 位置往后,每 step 取一個值,如果 start >= stop,結果為空
如果 step < 0,從 start 位置往前,每 step 取一個值,如果 start <= stop,結果為空
start 或 stop 為負數時,如果絕對值在 length 內,那么和 length + start 或 stop 等價
start 或 stop 為負數時,如果絕對值超過 length ,那么就要根據切片方向將 start 或 stop 轉換為邊界值
看完了這篇文章,相信你對python中slice參數的分析示例有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。