我需要將字串中的空格向右移動一個位置。這是我的代碼:
for i in range(0,len(resultaat)):
if resultaat[i] == " ":
string = resultaat[:i] resultaat[i 1] " " resultaat[i 2:]
例如:如果結果 =
"TH EZE NO FPYTHON."
比我的輸出需要:
'THE ZEN OF PYTHON.'
,但我得到的輸出是:
"TH EZE NO F PYTHON."
我認為這是因為回圈取消了它移動前一個空間的動作。我不知道如何解決這個問題。有人可以幫我弄這個嗎?
謝謝!
uj5u.com熱心網友回復:
每次通過回圈,您都會獲得原始resultaat字串的切片,而無需您為之前的迭代所做的更改。
您應該先復制resultaat到string,然后將其用作每個切片的源,以便累積所有更改。
string = resultaat
for i in range(0,len(resultaat)):
if resultaat[i] == " ":
string = string[:i] string[i 1] " " string[i 2:]
uj5u.com熱心網友回復:
你可以這樣做:
# first get the indexes that the character you want to merge
indexes = [i for i, c in enumerate(resultaat) if c == ' ']
for i in indexes: # go through those indexes and swap the characters as you have done
resultaat = resultaat[:i] resultaat[i 1] " " resultaat[i 2:] # updating resultaat each time you want to swap characters
uj5u.com熱心網友回復:
假設規定的輸入值實際上比實際需要的空間多一個:
TXT = "TH EZE NO FPYTHON."
def process(s):
t = list(s)
for i, c in enumerate(t[:-1]):
if c == ' ':
t[i 1], t[i] = ' ', t[i 1]
return ''.join(t)
print(process(TXT))
輸出:
THE ZEN OF PYTHON.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/477291.html
