добавить список подстрок в определенные позиции строки в Python - PullRequest
3 голосов
/ 30 октября 2019

у меня есть большая строка s и список координат, в которые я должен поместить некоторые строки.

s = "Hello world this is my code"

и список позиций:

cl = [(4,"this") , (7,"that") , (10 , "other")]

результат:

out >> Hell<this>o w<that>orl<other>d this is my code

Я прочитал эту ссылку: Добавьте строку в определенную позицию в Python и легко вставить одну строку внутрь другой, но когда я нажимаю несколько разпозиции меняются. как мне это сделать? спасибо.

Ответы [ 3 ]

4 голосов
/ 30 октября 2019

Вы можете сделать это в обратном порядке, чтобы положение элементов спереди не изменилось:

for pos, text in reversed(cl):
    s = f'{s[:pos]}<{text}>{s[pos:]}'

s становится: 'Hell<this>o w<that>orl<other>d this is my code'

1 голос
/ 30 октября 2019

Вы также можете использовать enumerate:

s = "Hello world this is my code"
cl = [(4,"this") , (7,"that") , (10 , "other")]
new_cl = dict(cl)
result = ''.join(a if i not in new_cl else f"<{new_cl[i]}>{a}" for i, a in enumerate(s))

Выход:

'Hell<this>o w<that>orl<other>d this is my code'
1 голос
/ 30 октября 2019

вот так:

s = "Hello world this is my code"
cl = [(4,"this") , (7,"that") , (10 , "other")]

i = 0
for j,w in cl:
    s = s[:j+i] + w + s[j+i:]
    i += len(w)

Просто добавьте длину каждого добавленного слова на каждом шаге. Надеюсь, это поможет!

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