切片的基本格式是 array[startstep],表示對 array 在 start 到 end 之前以 step 為間隔取切片。注意這里的區(qū)間是 [start, end),也就是左閉右開。比如:
s = 'hello'
s[0:5:2]
# 表示取 s 的第 0、2、4 個(gè)字符,結(jié)果是 'hlo'
再舉幾個(gè)例子
s[0:5] # 不寫 step 默認(rèn)就是 1,因此得到 'hello'
s[1:] # 不寫 end 默認(rèn)到結(jié)尾,因此還是得到 'ello'
s[n:] # 獲取 s 的最后 len(s) - n 個(gè)元素
s[:2] # 不寫 start 默認(rèn)從 0 開始,因此得到 'he'
s[:n] # 獲取 s 的前 n 個(gè)元素
s[:-1] # 負(fù)數(shù)表示倒過來數(shù),因此這會刨除最后一個(gè)字符,得到 'hell'
s[-2:] # 同上,表示獲取最后兩個(gè)字符,得到 'lo'
s[::-1] # 獲取字符串的倒序排列,相當(dāng)于 reverse 函數(shù)
step 和它前面的冒號要么同時(shí)寫,要么同時(shí)不寫,但 start 和 end 之間的冒號不能省,否則就不是切片而是獲取元素了。再次強(qiáng)調(diào) array[start:end] 表示的區(qū)間是 [a, b),也許你會覺得這很難記,但同樣的,這會得出以下美妙的公式:
array[:n] + array[n:] = array (0 <= n <= len(array))
用代碼來表示就是:
s = 'hello'
s[:2] + s[2:] == s
# True,因?yàn)?s[:2] 是 'he',s[2:] 是 'llo'
切片不僅可以用來獲取數(shù)組的一部分值,修改切片也可以直接修改數(shù)組的對應(yīng)部分,比如:
a = [1, 2, 3, 4, 5, 6]
a[1:3] = [22, 33, 44]
# a = [1, 22, 33, 44, 4, 5, 6]
并沒有人規(guī)定切片的新值必須和原來的長度一致:
a = [1, 2, 3, 4, 5, 6]
a[1:3] = [3]
# a = [1, 3, 4, 5, 6]
a[1:4] = []
# a = [1, 6],相當(dāng)于刪除了中間的三個(gè)數(shù)字
但切片的新值必須也是可迭代的對象,比如這樣寫是不合法的:
a = [1, 2, 3, 4, 5, 6]
a[1:3] = 3
# TypeError: can only assign an iterable
如果你現(xiàn)在想學(xué)習(xí)python,贏取高薪工作機(jī)會,非常簡單,填寫下面信息,學(xué)好python技術(shù)高薪工作機(jī)會唾手可得。
上一篇:Pythonsys.exc_info()方法:獲取異常信息
下一篇: 沒有了
初級會計(jì)職稱中級會計(jì)職稱經(jīng)濟(jì)師注冊會計(jì)師證券從業(yè)銀行從業(yè)會計(jì)實(shí)操統(tǒng)計(jì)師審計(jì)師高級會計(jì)師基金從業(yè)資格稅務(wù)師資產(chǎn)評估師國際內(nèi)審師ACCA/CAT價(jià)格鑒證師統(tǒng)計(jì)資格從業(yè)
一級建造師二級建造師消防工程師造價(jià)工程師土建職稱房地產(chǎn)經(jīng)紀(jì)人公路檢測工程師建筑八大員注冊建筑師二級造價(jià)師監(jiān)理工程師咨詢工程師房地產(chǎn)估價(jià)師 城鄉(xiāng)規(guī)劃師結(jié)構(gòu)工程師巖土工程師安全工程師設(shè)備監(jiān)理師環(huán)境影響評價(jià)土地登記代理公路造價(jià)師公路監(jiān)理師化工工程師暖通工程師給排水工程師計(jì)量工程師
人力資源考試教師資格考試出版專業(yè)資格健康管理師導(dǎo)游考試社會工作者司法考試職稱計(jì)算機(jī)營養(yǎng)師心理咨詢師育嬰師事業(yè)單位教師招聘公務(wù)員公選考試招警考試選調(diào)生村官
執(zhí)業(yè)藥師執(zhí)業(yè)醫(yī)師衛(wèi)生資格考試衛(wèi)生高級職稱護(hù)士資格證初級護(hù)師主管護(hù)師住院醫(yī)師臨床執(zhí)業(yè)醫(yī)師臨床助理醫(yī)師中醫(yī)執(zhí)業(yè)醫(yī)師中醫(yī)助理醫(yī)師中西醫(yī)醫(yī)師中西醫(yī)助理口腔執(zhí)業(yè)醫(yī)師口腔助理醫(yī)師公共衛(wèi)生醫(yī)師公衛(wèi)助理醫(yī)師實(shí)踐技能內(nèi)科主治醫(yī)師外科主治醫(yī)師中醫(yī)內(nèi)科主治兒科主治醫(yī)師婦產(chǎn)科醫(yī)師西藥士/師中藥士/師臨床檢驗(yàn)技師臨床醫(yī)學(xué)理論中醫(yī)理論