切片操作符
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