Я знаю, что у нас есть метод замены для замены подстроки в строке другой строкой. Но я хочу заменить некоторую подстроку в данной строке на некоторые нестроковые (может быть любой тип данных) значения.
пример -
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)
Есть идеи ??
Спасибо !!
Использование str.format:
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'
Я предпочитаю использовать 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) )
Что насчёт этого:
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'
Сначала преобразовать значение в строку:
>>> string1.replace("val2", str(val2)) 'My name is val1. My age is 40 years. I was born on val3'