如何连续添加到字符串?

时间:2019-02-15 18:43:22

标签: python string list

我正在尝试通过一些您可以说可以“更新”字符串的函数调用来添加字符串。例如,如果您有:

'This is a string'

您可以将其更改为:

'This is my string'

或者然后:

'This is my string here'

等等。

我的字符串数据来自嵌套字典,并且我做了一个将其更改为字符串的函数。 此函数称为“ create_string()” 。我不会发布它,因为它可以正常工作(尽管如有必要,我将进行编辑。但是请相信我认为它可以正常工作)。

这是函数'updater()',它带有三个参数:字符串,要更改的位置和要插入的字符串。

def updater(c_string, val, position):
   data = c_string.split(' ')
   data[position] = str(val)
   string = ' '.join(data)
   return string

 x = create_string(....)

 new_string = updater(x,'hey', 0)

直到这一点都可以正常工作:

'hey This is a string'

但是当您添加另一个函数调用时,它不会跟踪旧字符串:

new_string = updater(x,'hey',0)
new_string = updater(x,'hi',2)

> 'This is hi string'

我知道原因很可能是由于变量赋值,但是我只是尝试调用这些函数,而我仍然没有运气。

我该如何工作?

感谢您的帮助!

注意:请不要浪费时间在create_string()函数上,它可以正常工作。仅仅是updater()函数,甚至可能只是我认为是问题的函数调用。

**编辑:**这是预期的输出结果:

new_string = updater(x,'hey',0)
new_string = updater(x,'hi',2)

> 'hey is hi string'

2 个答案:

答案 0 :(得分:4)

您需要执行此操作,以继续修改字符串:

new_string = updater(x, 'hey', 0)
new_string = updater(new_string, 'hi', 2)

x在第一次调用后是相同的,新修改的字符串从该点开始为new_string

答案 1 :(得分:3)

您将updater的结果存储到new_string,但不要将该new_string传递给下一个updater调用。