首頁(yè)技術(shù)文章正文

什么是切片?切片的語(yǔ)法格式是怎樣的?

更新時(shí)間:2021-08-10 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班


切片是指對(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ù)

python有哪些基礎(chǔ)操作?怎樣添加、刪除、修改列表元素?

黑馬程序員Python大數(shù)據(jù)開(kāi)發(fā)培訓(xùn)課程

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!