【问题标题】:Python replacing parts of stringPython替换部分字符串
【发布时间】:2015-07-08 01:17:36
【问题描述】:

我在编写 python 函数 replace_str 时遇到问题,它消耗 3 个非空字符串,即 base、target 和 rep。

第一个字符串base 表示您要更新的基本字符串。第二个字符串target 表示要替换的目标字符串,第三个字符串rep 表示将替换更新字符串中的目标的字符串。

该函数生成一个新字符串,其中target 字符串被base 字符串中的rep 字符串替换,但如果以下任一条件成立,则生成相同的base 字符串。

• 如果在base 字符串中找不到target 字符串,或者,

• 如果targetrep 是相同的字符串。

不允许使用字符串方法replacefind

这是我目前所拥有的:

def replace_str(base, target, rep): m = 0 n = len(target) if base[m:n] == target: new_base = base[0:m] + rep + base[n:] return replace_str(new_base, target, rep) else: m = m + 1 n = n + 1 return replace_str(base, target, rep)

【问题讨论】:

  • 你应该展示你的代码,人们会很乐意纠正你。没有看到你做了什么,就好像你在要求别人为你做你的工作,因为它闻起来像家庭作业,所以人们不太愿意提供帮助。
  • 我完全理解,但我不知道从哪里开始。如果我有一些总体想法,我可以从那里开始工作
  • 一种方法是像使用replacefind 一样编写它。然后实现你自己的replacefind。我不明白他们为什么这样教python。它似乎违背了语言用于设置这些限制的方式。
  • 阅读河内塔算法。
  • 我添加了一个到目前为止我所做的示例

标签: python string recursion


【解决方案1】:

如果你可以使用split,为什么不这样呢:

"rep".join("target1 other string target2".split("target"))

split 方法返回由目标分隔的元素列表。 join 则相反:它通过在每个元素之间插入一个字符串来从列表中构造一个字符串。

您可以在此处查看这些功能的文档:

https://docs.python.org/2/library/stdtypes.html#str.split

https://docs.python.org/2/library/stdtypes.html#str.join

【讨论】:

    猜你喜欢
    • 2015-04-17
    • 1970-01-01
    • 2018-01-22
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 2012-07-17
    • 2020-09-08
    相关资源
    最近更新 更多