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