我想做这样的事情.
example_string = "test"
print(example_string.replace(example_string[0], "b"))
Run Code Online (Sandbox Code Playgroud)
期待输出
best
Run Code Online (Sandbox Code Playgroud)
但是因为字母"t"被传递到方法中,所以最后的t也被替换为"b".导致输出
besb
Run Code Online (Sandbox Code Playgroud)
如何以一种导致输出"最佳"而不是"besb"的方式来实现?
问题是.replace(old, new)
返回old
已替换出现的字符串的副本new
.
相反,您可以i
使用以下命令交换索引处的字符:
new_str = old_str[:i] + "b" + old_str[i+1:]
Run Code Online (Sandbox Code Playgroud)
检查文档。
您可以使用
example_string.replace(example_string[0], "b", 1)
Run Code Online (Sandbox Code Playgroud)
尽管使用切片来替换第一个字符会更自然,正如 @nbryans 在评论中指出的那样。
example_string.replace("t", "b", 1)
Run Code Online (Sandbox Code Playgroud)