1. 程式人生 > >06.自定義s.repalce(old,new,times)

06.自定義s.repalce(old,new,times)

def str_replace(s,old,new,*times): #未寫len(times)>2的情況,可以自行完善
    len_old=len(old)
    len_s=len(s)
    result=''
    if not times or s.count(old)<=times[0]: #如果t傳入的times為空或者大於要替換的字元在字串裡的數量
        i=0
        while i < len_s:
            if s[i:i+len_old]!=old:
                result+=s[i]
                i+=1
            else:
                result+=new
                i+=len_old
        return result
    else:
        for i in range(times[0]):
            s=s[:s.index(old)]+new+s[s.index(old)+len_old:] #拼接字串
        return s
print(str_replace("ab1ab2ab3ab4", "ab", "xyz"))
print(str_replace("ab1ab2ab3ab4", "ab", "xyz", 2))