替换字符串中的元素

时间:2018-01-12 07:28:32

标签: python python-3.x

我正在尝试编写一个将通过以下测试的函数 " test.testEqual(replace_chars(" SampIEam *",[" p"," E"," *"] )," Sam我是")"。将从字符串中删除字符列表并通过测试。

我想出了这段代码

Test Failed: expected Sam l am  but got *

结果是read_until()

新手在这里,有什么帮助吗?

3 个答案:

答案 0 :(得分:1)

def replace_chars(tmpStr, tmpChar):
    for i in tmpChar:
        tmpStr = tmpStr.replace(i, " ")
    return tmpStr

答案 1 :(得分:0)

如果由于一些奇怪的原因(也许是家庭作业)你真的需要使用splitjoin,你可以把它写成这个

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