我的目标是用另一个字符串元素替换第 0 个字符串元素。我试过下面的代码。
s='12:15:45'
s=s.replace(s[0],'9')
print(s)
虽然第 0 个元素确实被替换了,但更改也反映在第 3 个元素上。
输出- 92:95:45
为什么会这样?
答案 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]