簡體   English   中英

如何替換字符串中的多個字符 Python

[英]How do I replace more than one character in a string Python

提前抱歉,我才剛剛開始編程。

我在這個程序上的掙扎比我想象的要多。 看看

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)

我應該得到的 output 是:

Enter a string: Welcome to Python

Enter delimiters: oe
W lc m t Pyth n

問題來了:如果我輸入超過 1 個字符,程序只會傳遞我輸入的最后一個字符,而忽略其他字符。

這是我得到的 output:

 Enter a string: Welcome to Python

 Enter delimiters: oe
 Welc me t  Pyth n

我將不勝感激任何幫助! 提前致謝!!!

參數字符串被傳遞一個副本並且不會自行更改,因此每次設置 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)

您可以使用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)

丹尼爾。 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM