замените подстроку нестроковым значением в python - PullRequest
1 голос
/ 13 июля 2011

Я знаю, что у нас есть метод замены для замены подстроки в строке другой строкой. Но я хочу заменить некоторую подстроку в данной строке на некоторые нестроковые (может быть любой тип данных) значения.

пример -

string1='My name is val1. My age is val2 years. I was born on val3'
val1='abc'
val2=40
val3= datetime.date(1980, 1, 1)

Есть идеи ??

Спасибо !!

Ответы [ 4 ]

5 голосов
/ 13 июля 2011

Использование str.format:

>>> string1 = 'My name is {0}. My age is {1} years. I was born on {2}'
>>> string1.format('abc', 40, datetime.date(1980, 1, 1))
'My name is abc. My age is 40 years. I was born on 1980-01-01'
4 голосов
/ 13 июля 2011

Я предпочитаю использовать dict для этого, потому что намного проще увидеть, какой аргумент идет куда:

'My name is {val1}. My age is {val2} years. I was born on {val3}'.format(
    val1 = 'abc',
    val2 = 40,
    val3 = datetime.date(1980, 1, 1)
)
3 голосов
/ 13 июля 2011

Что насчёт этого:

string1='My name is %s. My age is %s years. I was born on %s'
print(string1 % ('abc', 40, datetime.date(1980, 1, 1)))

Результат:

'My name is abc. My age is 40 years. I was born on 1980-01-01'
0 голосов
/ 13 июля 2011

Сначала преобразовать значение в строку:

>>> string1.replace("val2", str(val2))
'My name is val1. My age is 40 years. I was born on val3'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...