提前抱歉,我才剛剛開始編程。
我對這個程式的掙扎比我想象的要多。看看:
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
我將不勝感激任何幫助!提前致謝!!!
uj5u.com熱心網友回復:
丹尼爾。DSMSTHN 的答案是正確的,但還有一個附加說明。str 不需要轉換為串列,因為它已經是可迭代的。所以,這是我的代碼版本。
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)
uj5u.com熱心網友回復:
您可以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)
uj5u.com熱心網友回復:
引數字串作為副本傳遞,不會自行更改。所以,每次你設定 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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/367482.html
