只替换字符串中第一次出现的字符

时间:2021-03-12 18:11:03

标签: python

我的目标是用另一个字符串元素替换第 0 个字符串元素。我试过下面的代码。

s='12:15:45'

s=s.replace(s[0],'9')

print(s)

虽然第 0 个元素确实被替换了,但更改也反映在第 3 个元素上。

输出- 92:95:45

为什么会这样?

4 个答案:

答案 0 :(得分:2)

替换函数默认替换字符串中所有出现的 1。您可以使用以下正确的语法来限制这一点

语法

string.replace(oldvalue, newvalue, count)

如果您只想替换第一次出现,您应该使用

s=s.replace(s[0],'9',1)

答案 1 :(得分:1)

使用 s.replace(s[0],'9', 1) 仅替换第一次出现。


<块引用>

str.replace(old, new, count) 返回带有所有子字符串出现的字符串副本 old 替换为 new。如果给出了可选参数 count,则只有 前 count 次出现被替换。

答案 2 :(得分:1)

通过次数。

string.replace(oldvalue, newvalue, count)
  • oldvalue 必需。要搜索的字符串
  • newvalue 必需。用计数替换旧值的字符串
  • count 可选。一个数字,指定您想要的旧值出现的次数 取代。默认为所有出现

s=s.replace(s[0],'9',1)

打印

答案 3 :(得分:1)

如文档中所述:

<块引用>

str.replace(old, new[, count]) - 返回字符串的副本,其中所有出现的子字符串 old 都被 new 替换。如果可选 参数计数给出,只有第一个计数出现 替换了。

您没有指定 count,因此它替换了 s[0]所有出现 - 在本例中为 '1'。在这种特殊情况下,您可以这样做

s = '12:15:45'
s = s.replace(s[0],'9',1)
print(s)

但它并不总是有效 - 例如如果您只想替换 s[3]