gpt4 book ai didi

Python 替换函数输出不同的结果

转载 作者:太空宇宙 更新时间:2023-11-03 12:15:48 25 4
gpt4 key购买 nike

s="|0000011111111|"
print s.replace(s[9:12],' ')

...输出为 |00000 11|

s="|0000012345678|"
print s.replace(s[9:12],' ')

...输出为 |00000123 78|

我只想把s[9:12]替换成三个空格,为什么第一个输出不正确?

最佳答案

str.replace() 将替换您作为第一个参数传入的字符串的所有 处。这里的第一个参数是从切片创建的并不重要,str.replace() 方法没有给出关于该字符串来自何处的任何信息。相反,str.replace() 方法从位置 0 开始向前搜索,在输入字符串中找到子字符串的位置并不重要。

所以你真的只是这样做:

string_to_replace = s[9:12]
s.replace(string_to_replace, ' ')

甚至只是

s.replace('111', '   ')

这些都具有完全相同的效果。

您的第二个示例之所以有效,是因为 s[9:12] 字符串值在 s 中是唯一的;只有一处要替换,位置完全正确。

因为 s[9:12] 是字符串 '111',您要求 Python 替换 s 中该字符串的所有出现有空格,并且有两个这样的序列要替换。

显式地对输入字符串进行切片会好得多:

s = s[:9] + '   ' + s[12:]

这需要您要替换的部分之前的所有文本和之后的所有文本,并在这两个子字符串之间放置三个空格。

关于Python 替换函数输出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48271169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com