在字符串的子字符串之前插入字符串

use*_*481 5 python string

我想在字符串中的子字符串之前插入一些文本.

例如:

str = "thisissometextthatiwrote"
substr = "text"
inserttxt = "XX"
Run Code Online (Sandbox Code Playgroud)

我想要:

str = "thisissomeXXtextthatiwrote"
Run Code Online (Sandbox Code Playgroud)

假设substr只能在str中出现一次,我该如何实现这个结果呢?有一些简单的方法可以做到这一点吗?

Duš*_*ďar 15

my_str = "thisissometextthatiwrote"
substr = "text"
inserttxt = "XX"

idx = my_str.index(substr)
my_str = my_str[:idx] + inserttxt + my_str[idx:]
Run Code Online (Sandbox Code Playgroud)

ps:避免使用保留字(即str在您的情况下)作为变量名


lor*_*. j 6

使用str.split(substr)分割字符串str的['thisissome', 'thatiwrote'],因为你要插入一些文本之前的子串,所以我们用"XXtext"(加入他们的行列(inserttxt+substr)).

所以最终的解决方案应该是:

>>>(inserttxt+substr).join(str.split(substr))
'thisissomeXXtextthatiwrote'
Run Code Online (Sandbox Code Playgroud)

如果你想子字符串附加一些文本,只需替换为:

>>>(substr+appendtxt).join(str.split(substr))
'thisissometextXXthatiwrote'
Run Code Online (Sandbox Code Playgroud)

  • @Robert使用`str.split(substr)`将`str`拆分为`''thisissome','thatiwrote']`,然后我们用"XXtext"(`(inserttxt + substr)`)加入它们. (2认同)

san*_*ton 5

为什么不使用replace

my_str = "thisissometextthatiwrote"
substr = "text"
inserttxt = "XX"

my_str.replace(substr, substr + inserttxt)
# 'thisissometextXXthatiwrote'
Run Code Online (Sandbox Code Playgroud)