Python中使用字符串替換方法,我有以下代碼:使用循環
secretWord = 'hello'
letter = 'l'
tag = '_ '*len(secretWord) # tag = '_ _ _ _ _'
for m in rage(len(secretWord)):
if letter == secretWord[m] and m == 0:
tag.replace(tag[m],letter)
else:
tag.replace(tag[m+2],letter)
期望放出來,我想是tag = '_ _ l l _'
由於某種原因,我根本無法雖然我的邏輯是這樣的,甚至工作完全準確。我有一個for循環遍歷每個字符在secretWord中,如果字母然後在for循環中等於那個特定字符,用這個字母替換標籤中的適當位置,並保留所有其他空格('_')相同。
替換不就地修改,它返回。因此,'tag = tag.replace(...)' – sberry
再次審視這個問題,您的問題更多的是不重新分配帶有'tag.replace'返回值的標籤。你也試圖用'tag [m]'或'tag [m + 2]'來代替一個特定的'_',但這不會做你認爲的事情。請參閱@ unutbu的答案。 – sberry
你也可以使用正則表達式:'tag =''.join(re.sub('[^%s]'%letter,'_',secret_word))' – jfs