使用Python逐个字符遍历字符串并交换空格

5

好的,我需要将单引号' '替换为星号*s。我想到了以下方法:

def characterSwitch(ch,ca1,ca2,start = 0, end = len(ch)):
    while start < end:
        if ch[start] == ca1:
            ch[end] == ca2
        start = start + 1
sentence = "Ceci est une toute petite phrase."
print characterSwitch(sentence, ' ', '*')
print characterSwitch(sentence, ' ', '*', 8, 12)
print characterSwitch(sentence, ' ', '*', 12)
print characterSwitch(sentence, ' ', '*', end = 12)

赋值 len(ch) 似乎不起作用,而且我相信这不是最有效的做法。以下是我想要的输出:

Ceci*est*une*toute*petite*phrase.
Ceci est*une*toute petite phrase.
Ceci est une*toute*petite*phrase.
Ceci*est*une*toute petite phrase.

ch 还没有定义。看起来需要使用 replace 函数。 - Pythonista
你得到了什么输出?你想要什么? - Martin Bonner supports Monica
我在问题中添加了我要寻找的输出,但我无法弄清如何替换第8到第12个字符。当我使用它时,它将所有空格都替换了。 - user3413472
2个回答

4
你正在寻找 replace() 函数吗?
sentence = "Ceci est une toute petite phrase."
sentence = sentence.replace(' ', '*')
print sentence
# Ceci*sest*sune*stoute*spetite*sphrase.

此外,您可以在ideone.com上查看演示

对于第二个要求(仅替换第8到12个字符),您可以执行以下操作:

sentence = sentence[8:12].replace(' ', '*')

1
假设你必须逐个字符地完成它,你可以这样做:
sentence = "this is a sentence."
replaced = ""

for c in sentence:
    if c == " ":
        replaced += "*"
    else:
        replaced += c

print replaced

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接