我正在尝试编写一个将通过以下测试的函数 " test.testEqual(replace_chars(" SampIEam *",[" p"," E"," *"] )," Sam我是")"。将从字符串中删除字符列表并通过测试。
我想出了这段代码
Test Failed: expected Sam l am but got *
结果是read_until()
新手在这里,有什么帮助吗?
答案 0 :(得分:1)
def replace_chars(tmpStr, tmpChar):
for i in tmpChar:
tmpStr = tmpStr.replace(i, " ")
return tmpStr
答案 1 :(得分:0)
如果由于一些奇怪的原因(也许是家庭作业)你真的需要使用split
和join
,你可以把它写成这个
def replace_chars(tmpStr, tmpChar) :
for c in tmpChar:
if c not in tmpStr: continue
tmp = " ".join(tmpStr.split(c))
if tmpStr[-1] == c:
tmpStr += " "
# I'm not really sure if the "if" above is necessary
# responding from my phone, can't test it
tmpStr = tmp
return tmpStr
这纯粹是学术性的,@ Rakesh提供的答案是最好的方法。
答案 2 :(得分:0)
这也可以使用连接来完成。
def replace_chars(tmpStr, tmpChar):
s = "".join(char if char not in tmpChar else ' ' for char in tmpStr)
return s