20190120-自定义实现split方法

Posted hyj691001

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20190120-自定义实现split方法相关的知识,希望对你有一定的参考价值。

1. 实现字符串的split方法
Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串

思路同自定义实现replace方法类型:

  1.先找出字符串中指定分隔字符的index,考虑可能出现多次的情况使用一个列表split_str_index存储分隔字符的index

  2.使用result列表存储分隔后的字符串列表

  3.当index不在split_str_index中的的时候拼接字符串,当index在split_str_index中的的时候的将已拼接的字符串append到result列表中,特别注意最后一定要判断each判断是否为空,来决定是否append一下

  4.考虑分隔次数,使用count来统计分隔次数 

def customize_split(s,split_str= ,num=None):                
    result=[]
    split_str_index=[]
    for i in range(len(s)):
        if s[i:i+len(split_str)]==split_str:
            split_str_index.append(i)
    #存储split_str的index
    if num==None:
        each =‘‘
        j=0
        while j<len(s):
            if j in split_str_index:
                result.append(each)
                each = ‘‘
                j+=len(split_str)
            else:
                each +=s[j]
                j+=1
        if bool(each):
            print(bool(each))
            result.append(each)
    else:
        each =‘‘
        j=0
        count =0
        while j<len(s):
            if count<num and j in split_str_index:
                if bool(each):
                    print(bool(each))
                    result.append(each)
                each = ‘‘
                j+=len(split_str)
                count+=1
            else:
                each +=s[j]
                j+=1
        if bool(each):
            result.append(each)
        #最后一根据each是否为空决定是否要append一下,因为有可能else是最后执行也可能if是最后执行               
    return result
print(customize_split(abcacabcacac,c))

 


以上是关于20190120-自定义实现split方法的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段—— 数组的响应式方法

VSCode自定义代码片段10—— 数组的响应式方法

VS中添加自定义代码片段——偷懒小技巧

VS Code中自定义Emmet代码片段

未调用自定义适配器 getView() 方法

VSCode 配置 用户自定义代码片段 自定义自动代码补充