Заменить строковые символы для элементов в списке Python - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть следующая строка в python:

'this is my string (x,x,x,x)'

Я хочу заменить каждый x на каждое число в этом списке:

[1,2,3,4]

Итак, окончательный вывод должен будь таким:

'this is my string (1,2,3,4)'

Я пытался решить эту проблему разными способами, но я не могу этого сделать.

Я не знаю, существует ли эффективный способ сделать это.

Ответы [ 3 ]

2 голосов
/ 30 апреля 2020

А как насчет этого?

'this is my string (x,x,x,x)'.replace('x','{}').format(*[1,2,3,4])
0 голосов
/ 30 апреля 2020

Повтор с string.replace(self, old, new[, count]) работает, исключая шум "x":

s = 'this is my string with x to replace (x,x,x,x)'
l = [1,2,3,4]

## Exclude noise "x"
ind = s.find('(x') + 1
start_x = s[ind:]

## Replace
for char in l:
    start_x = start_x.replace('x',str(char),1)

## New string
news = s[:ind] + start_x

print(news)

Вывод

this is my string with x to replace (1,2,3,4)
0 голосов
/ 30 апреля 2020

здесь решение

s = 'this is my string (x,x,x,x)'        

s                                        
'this is my string (x,x,x,x)'

for i in range(1, len(s.split('x'))): 
    s = s.replace('x', str(i), 1) 


s                                        
'this is my string (1,2,3,4)'


для предотвращения недовольства вы можете использовать s.count('x,') + 1 вместо len(s.split('x')), если в вашей строке x

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