【问题标题】:Very Beginner Python: Replacing Part of a String非常初学者的 Python:替换字符串的一部分
【发布时间】:2020-11-23 05:34:20
【问题描述】:

我想知道如何替换字符串中的一个字母而不替换同一个字母。比如让变量:

action = play sports.

我可以通过 print(action.replace("play", "playing") 将“玩”替换为“玩”

但如果你必须使用相同的字母怎么办?

例如,如果要将“honeyhoney”的后半部分替换为“honeysweet”(将字符串的后半部分替换为sweet?

抱歉措辞不好,我是编码新手,对此真的不熟悉。谢谢!

【问题讨论】:

  • 您可以先在提供的输入中找到所有字符串。必要时更换部分琴弦。替换后将它们连接起来。

标签: python replace


【解决方案1】:
def replaceLast(str, old, new):
  return str[::-1].replace(old[::-1],new[::-1], 1)[::-1]

print(replaceLast("honeyhoney", "honey", "sweet"))

输出

honeysweet

所以想法是反转字符串以及新旧子字符串, 所以最后一个子串变成了第一个,做一个replace然后再反转一次返回的字符串,数字1是只替换一次而不是两个都匹配

另一种解决方案

def replaceLast(str, old, new):
  ind = str.rfind(old)
  if ind == -1 : return str
  return str[:ind] + new + str[ind + len(old):];

print(replaceLast("honeyhoney", "honey", "sweet"))

输出

honeysweet

所以这里我们从开头获取字符串到最后一个子字符串的索引,然后我们添加新的子字符串和旧子字符串结束的字符串的其余部分,并将它们作为新字符串返回,String.rfind 返回 - 1 如果找不到匹配项,我们需要检查 aginst 以确保输出正确,即使没有可替换的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    • 2018-09-20
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 2017-01-06
    相关资源
    最近更新 更多