不用string.replace ,在一个字符串里面用新字串替换掉旧的字串
这是我写的def myreplace(s,old,new):
length=len(old)
k=[]
final=""
for i in range(0,len(s)-length+1):
k.append(s)
for i in xrange(len(k)):
if k==old:
k=new
for i in range(0,len(k),length):
final=final+str(k)
return final
我发现我这段code 有两个问题,
1. s的长度必须刚好是old 长度的倍数。
2. return final 的值是传进来的s,没有做任何改变。
这是面试题? 看一本书叫practical programming python ,里面练习里面的一道题
本帖最后由 timespace 于 2014-03-19 15:29 编辑
LZ还有一个问题,"str1 = str1 + str2"非常非常慢。。。前几天我刚做了了一个benchmarkPython字符串拼接效率测试 。还有就是传入的s不能改变,Python语言的规则。
如果允许使用其它str方法的话,还有更简单的实现:>>> def str_repl(src, old, new):
... return new.join(src.split(old))
...
>>> str_repl('hello, world', 'world', 'abc')
'hello, abc'
>>> str_repl('hello, world', 'hello', 'hi')
'hi, world'
>>> str_repl('hello, world', ', ', '---')
'hello---world'
页:
[1]