1 s = "abcdefg"
對於這樣一個字符串進行操作。分片格式為:
1 s[i:j:k]
其中,i和j分別代表子串的起始和末尾;-1則代表倒數第一個元素,同理-2代表倒數第二個元素......j不包括s[j]元素,也就是說s[0:2]截取的是"ab",s[0:0]則是空字符串。i的默認值是0,省略j則會截取完整個字符串。
k是步長,也分為正負兩種參數,正參數代表從前往后輸出,負參數則是從后往前輸出,k的默認值是1。k不可取0。|k|的值代表增量,k==1時,正常輸出,當|k|>1時,則會跳過元素輸出,例如s[::2]得到的結果是"aceg"。通常情況下k可以省略,s[i:j]和s[i:j:1]是一樣的。
舉幾個例子:
1.將字符串逆置
s[::-1] #i,j取默認值
得到gfedcba
2.正序輸出,但是除掉最后一個字符
s[0:-1]
得到"abcdef"
3.正序輸出,倒數3個字符都舍去
s[0:-3]
得到"abcd"
4.正序輸出末尾3個字符
s[-3:] #這里j取了默認值
得到"efg"
注意如果輸入s[-3:0],會得到空字符串,輸入s[-3,-1]會得到"ef",所以必須省略j才能達到要求。