Как постоянно добавлять в строку? - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь добавить в строку несколько вызовов функций, которые, как вы могли бы сказать, «обновят» строку.Например, если у вас есть:

'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 голосов
/ 15 февраля 2019

Вы должны сделать это, чтобы продолжить модификацию строки:

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

x то же самое после первого вызова, новая измененная строка - new_string с этого момента.

0 голосов
/ 15 февраля 2019

Вы сохраняете результат от updater до new_string, но не передаете его new_string на следующий updater вызов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...