我正在尝试通过一些您可以说可以“更新”字符串的函数调用来添加字符串。例如,如果您有:
'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'
答案 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
调用。