切片操作符
Python提供了切片(Slice)操作符,切片操作十分有用,可以通過切片輕松取出某一段數列。比如前10個數:
#slice切片操作符 取前10個元素
L=list(range(0,100))
print(L[:10])#索引為0可以省略
》[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
L[0:10]表示從索引0開始取(索引為0可以省略),直到索引10為止(但是不包括索引10),就是一個“左閉右開”區間[0,10),切片操作符也可以取倒數元素比如L[-2:-1]取到倒數第二個元素98。
用切片操作符實作strip的預設方法
#str.strip() 去掉首尾的指定字元(字元串),預設為空格
str=' hello world! '
print(str.strip())
#使用[:]切片操作符去掉字元串首尾空格
n=0
j=0#前索引
k=0#後索引
while n<len(str):
if str[n:n+1]!=' ':
j=n
break
n=n+1
while n<len(str):
if str[-n-1:-n]!=' ':
k=-n
break
n=n+1
print(str[j:k])
》hello world!
》hello world!
進階版
使用[:]切片操作符實作strip方法
#使用[:]切片操作符實作strip方法
def my_strip(str,chr=' '):
n=0#循環索引重置
J=0#前索引
K=0#後索引
Ls=len(str)#輸入字元串長度
L=len(chr)#去掉字元長度
#得到前索引J
while n<Ls:
if str[n:n+L]!=chr:
J=n
break
n=n+L
n=0#循環索引重置
#得到後索引K
while n<Ls:
if str[-n-L:Ls-n]!=chr:
K=Ls-n
break
n=n+L
#傳回切片
return str[J:K]
str='0000a000'
chr='000'
print(my_strip(str,chr))
》0a
簡單版
看了一個老哥的代碼,非常簡單,佩服,記錄如下:
def trim(str,chr=' '):
L=len(chr)
while str[:L] == chr: #如果字元串第一個是空格,删除第一個
str = str[L:]
while str[-L:] == chr: #如果字元串最後一個是空格,删除最後一個
str = str[:-L]
return str