我写这篇文章来替换'babble'中的所有'b',除了第一个'。
s = 'babble'
for i in range(1, len(s)):
if s[i] == s[0]:
t = s.replace(s[i],'$')
print(t)
这打印'$ a $$ le'而不是'ba $$ le'。 那是为什么?
答案 0 :(得分:0)
str.replace并不像你想象的那样工作。如果您看到文档说明
string.replace(s, old, new[, maxreplace])
返回字符串s的副本,其中出现所有子字符串old 换成新的。如果给出了可选参数maxreplace,那么 第一个maxreplace事件被替换。
如果你不想替换第一个字符,那么使用切片而不是循环,即
s = 'babble'
s = s[0] + s[1:].replace(s[0],'$')
输出:ba$$le
答案 1 :(得分:0)
另一种方法:
s = 'babble'
t = s[0]
for i in range(1, len(s)):
if s[i] == s[0]:
t += '$'
else:
t += s[i]
print(t)
<强>输出:强>
ba$$le