更新時間:2021-08-10 來源:黑馬程序員 瀏覽量:
切片是指對序列截取其中一部分的操作。切片的語法格式如下:
[起始索引:結(jié)束索引:步長]切片截取的范圍屬于左閉右開,即從起始索引開始,到結(jié)束索引前一位結(jié)束(不包含結(jié)束位本身)。我們把索引比作一把“刀”,在開始索引和結(jié)束索引的位置“切下”,“切下”的元素就是這個范圍內(nèi)的元素。步長的取值可以是正數(shù)和負(fù)數(shù),默認(rèn)值為1。
根據(jù)步長的取值,可以分為如下兩種情況:
(1)步長大于0
按照從左到右的順序,每隔“步長-1”(索引間的差值仍為步長值)個字符進(jìn)行一次截取。這時,“起始”指向的位置應(yīng)該在“結(jié)束”指向的位置的左邊,否則返回值為空。
示例如下:
>>> string = 'python' >>> string[0:6] # 沒指定步長,默認(rèn)為1 'python' >>> string[2:5:2] # 指定步長為2 'to'
在上述示例中,如果沒有指定步長默認(rèn)為1。以string[2:5:2]為例,通過示意圖來分析切片的原理,如圖1所示。
圖1 切片示意圖(步長大于0)
(2)步長小于0
按照從右到左的順序,每隔“步長-1”(索引間的差值仍為步長值)個字符進(jìn)行一次截取。這時,“起始”指向的位置應(yīng)該在“結(jié)束”指向的位置的右邊,否則返回值為空。
示例如下:
>>> string = 'python' >>> string[3:0:-1] 'hty' >>> string[0:3:-2] ''
注意,起始位置的索引必須大于結(jié)束位置的索引,否則返回空字符串。以string[3:0:-1]為例,通過示意圖來分析切片的原理,如圖2所示。
圖2 切片示意圖(步長小于0)
DRF框架:序列化器字段類型和選項(xiàng)參數(shù)
Python怎樣向文件中寫入數(shù)據(jù)和字符串序列?
DRF框架:序列化器字段類型和選項(xiàng)參數(shù)