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