切片操作符是序列名后跟一個(gè)方括號(hào),方括號(hào)中有一對(duì)可選的數(shù)字,并用冒號(hào)分割。 注意: 數(shù)是可選的,而冒號(hào)是必須的。
切片操作符中的第一個(gè)數(shù)(冒號(hào)之前)表示切片開(kāi)始的位置,第二個(gè)數(shù)(冒號(hào)之后)表示切片到哪里結(jié)束,第三個(gè)數(shù)(冒號(hào)之后)表示切片間隔數(shù)。
如果不指定第一個(gè)數(shù),Python就從序列首開(kāi)始。如果沒(méi)有指定第二個(gè)數(shù),則Python會(huì)停止在序列尾。 ? (序列首與序列尾 依據(jù)step方向決定 !)
注意: 返回的序列從開(kāi)始位置開(kāi)始 ,剛好在結(jié)束位置之前結(jié)束。 即開(kāi)始位置是包含在序列切片中的,而結(jié)束位置被排斥在切片外。( 前閉后開(kāi) !)
總結(jié): 1. start 和 end 不填,或者其中一個(gè)不填,都是指代獲取所有,然后根據(jù) step 確定方向。
2. step:表示取值的步長(zhǎng),默認(rèn)為1,步長(zhǎng)值不能為0。
3. 因此任意一個(gè)序列結(jié)構(gòu)數(shù)據(jù)的索引范圍為 -len(consequence) 到 len(consequence)-1 范圍內(nèi)的連續(xù)整數(shù)。
4. 當(dāng)使用冒號(hào)(:)對(duì)序列進(jìn)行切片取值時(shí),你所輸入的無(wú)論是start_index或者end_index,都不必局限于 -len(consequence) 到 len(consequence)-1 之間因?yàn)橹挥挟?dāng)你輸入的索引號(hào)處于這個(gè)區(qū)間時(shí)才真正有效,而當(dāng)你輸入的索引號(hào)超出這個(gè)范圍時(shí),python會(huì)自動(dòng)將start_index或end_index設(shè)定為缺省值(即第一個(gè)對(duì)象和最后一個(gè)對(duì)象)。
額外:
其中a[len(a)-1]等同于a[-1],a[-len(a)]等同于a[0],分別表示序列的最后一個(gè)和第一個(gè)對(duì)象。 |
|
來(lái)自: highoo > 《數(shù)據(jù)分析》