【问题标题】:How do I replace more than one character in a string Python如何替换字符串Python中的多个字符
【发布时间】:2022-01-03 10:17:29
【问题描述】:

提前抱歉,我才刚刚开始编程。

我在这个程序上的挣扎超出了我的想象。 看看

string = str(input("Enter a string: "))

delimiter = input("Enter delimiters: ")


s = list(string)

d = list(delimiter)


def split(string, delimiter):

    for i in s:
        if i in d:
            x = string.replace(i, " ")

    print(x)


split(string, delimiter)

我应该得到的输出是:

Enter a string: Welcome to Python

Enter delimiters: oe
W lc m t Pyth n

问题来了:如果我输入超过 1 个字符,程序只会传递我输入的最后一个字符,而忽略其他字符。

这是我得到的输出:

 Enter a string: Welcome to Python

 Enter delimiters: oe
 Welc me t  Pyth n

我将不胜感激任何帮助!提前谢谢!!!

【问题讨论】:

    标签: python list input split str-replace


    【解决方案1】:

    参数字符串作为副本传递,不会自行更改。所以,每次你设置 x = string.replace(i, " ")。您将再次获得原始字符串并仅替换当前字符 i。

    这应该可以解决问题:

    def split(string, delimiter):
        x = string
        for i in s:
            if i in d:
                x = string.replace(i, " ")
    
        print(x)
    

    【讨论】:

    • OOOOOO 所以这就是问题所在。现在我明白它应该是怎样的了。谢谢!!我很感激!
    【解决方案2】:

    您可以使用re.sub() 提问:

    import re
    
    def split(string, delimiter):
        pattern = "[" + delimiter + "]"
        new_string = re.sub(pattern, " ", string)
        return new_string
    
    string = str(input("Enter a string: "))
    delimiter = input("Enter delimiters: ")
    
    split(string, delimiter)
    

    【讨论】:

    • 谢谢!!我还没有看过“re”模块,但是在看到这个程序并了解它是如何工作的之后,现在我可以了解它是如何工作的了!我很感激!
    【解决方案3】:

    丹尼尔。 DSMSTHN 的答案是正确的,但还有一个额外的说明。 str 不需要转换为 list 因为它已经是可迭代的。所以,这是我的代码版本。

    string = input("Enter a string: ")
    delimiter = input("Enter delimiters: ")
    
    
    def split(string, delimiter):
        for s in string:
            if s in delimiter:
                string = string.replace(s, " ")
        print(string)
    
    
    split(string, delimiter)
    

    【讨论】:

    • 非常感谢!!!我几乎可以肯定,如果没有列表,它就行不通。我很感激!
    猜你喜欢
    • 1970-01-01
    • 2021-06-13
    • 2018-03-14
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    相关资源
    最近更新 更多