python——高级特性

切片操作符

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

 

posted on 2018-05-04 13:31  乌云上  阅读(163)  评论(0编辑  收藏  举报

导航