【问题标题】:Insert a string before a substring of a string在字符串的子字符串之前插入字符串
【发布时间】:2019-04-02 08:09:39
【问题描述】:

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

例如:

str = "thisissometextthatiwrote"
substr = "text"
inserttxt = "XX"

我想要:

str = "thisissomeXXtextthatiwrote"

假设 substrstr 中只能出现一次,我怎样才能达到这个结果呢?有没有一些简单的方法可以做到这一点?

【问题讨论】:

标签: python string


【解决方案1】:
my_str = "thisissometextthatiwrote"
substr = "text"
inserttxt = "XX"

idx = my_str.index(substr)
my_str = my_str[:idx] + inserttxt + my_str[idx:]

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

【讨论】:

    【解决方案2】:

    为什么不使用replace

    my_str = "thisissometextthatiwrote"
    substr = "text"
    inserttxt = "XX"
    
    my_str.replace(substr, substr + inserttxt)
    # 'thisissometextXXthatiwrote'
    

    【讨论】:

    • 在 Python 中 .replace() 返回字符串的副本,所以我猜应该是:new_str = my_str.replace(substr, substr + inserttxt)
    • 这令人困惑,它将text 替换为textXX
    【解决方案3】:

    使用 str.split(substr) 将 str 拆分为 ['thisissome', 'thatiwrote'],因为您想在 子字符串之前插入一些文本,因此我们使用“XXtext” ((inserttxt+substr)) 将它们连接起来。

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

    >>>(inserttxt+substr).join(str.split(substr))
    'thisissomeXXtextthatiwrote'
    

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

    >>>(substr+appendtxt).join(str.split(substr))
    'thisissometextXXthatiwrote'
    

    【讨论】:

    • 你能补充解释吗?
    • @Robert 使用str.split(substr)str 拆分为['thisissome', 'thatiwrote'],然后我们使用“XXtext” ((inserttxt+substr)) 将它们加入。
    【解决方案4】:

    关于问题('my_str' 是变量),右边是:

    (inserttxt+substr).join(**my_str**.split(substr))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-06
      相关资源
      最近更新 更多