码迷,mamicode.com
首页 > 其他好文 > 详细

20190120-自定义实现split方法

时间:2019-01-20 21:22:09      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:pre   range   res   index   ace   定义   dex   result   根据   

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方法

标签:pre   range   res   index   ace   定义   dex   result   根据   

原文地址:https://www.cnblogs.com/hyj691001/p/10291540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!