Как использовать string.replace () в python 3.x - PullRequest
226 голосов
/ 26 февраля 2012

Функция string.replace () устарела в python 3.x. Какой новый способ сделать это?

Ответы [ 7 ]

258 голосов
/ 26 февраля 2012

Как и в 2.x, используйте str.replace().

Пример:

>>> 'Hello world'.replace('world', 'Guido')
'Hello Guido'

Обратите внимание также, что точка связывается сильнее, чем константация строкт.е. используйте круглые скобки: ('Hello' + 'world'). replace ('world', 'Guido')

98 голосов
/ 26 февраля 2012

replace() - это метод <class 'str'> в python3:

>>> 'hello, world'.replace(',', ':')
'hello: world'
9 голосов
/ 24 апреля 2017

Метод replace () в python 3 используется просто:

a = "This is the island of istanbul"
print (a.replace("is" , "was" , 3))

#3 is the maximum replacement that can be done in the string#

>>> Thwas was the wasland of istanbul

# Last substring 'is' in istanbul is not replaced by was because maximum of 3 has already been reached
3 голосов
/ 10 августа 2013

Попробуйте это:

mystring = "This Is A String"
print(mystring.replace("String","Text"))
1 голос
/ 30 августа 2015

К вашему сведению, когда добавляя некоторые символы к произвольному слову с фиксированной позицией внутри строки (например, заменяя прилагательное на наречие, добавляя суффикс -ly ), вы можете поставьте суффикс в конце строки для удобства чтения. Для этого используйте split() внутри replace():

s="The dog is large small"
ss=s.replace(s.split()[3],s.split()[3]+'ly')
ss
'The dog is largely small'
0 голосов
/ 16 июля 2019

Вы можете использовать str.replace () в качестве цепочки str.replace () .Представьте, что у вас есть строка типа 'Testing PRI/Sec (#434242332;PP:432:133423846,335)', и вы хотите заменить все знаки '#',':',';','/' на '-'.Вы можете заменить его так (обычным способом),

>>> str = 'Testing PRI/Sec (#434242332;PP:432:133423846,335)'
>>> str = str.replace('#', '-')
>>> str = str.replace(':', '-')
>>> str = str.replace(';', '-')
>>> str = str.replace('/', '-')
>>> str
'Testing PRI-Sec (-434242332-PP-432-133423846,335)'

или таким образом (цепочка str.replace () )

>>> str = 'Testing PRI/Sec (#434242332;PP:432:133423846,335)'.replace('#', '-').replace(':', '-').replace(';', '-').replace('/', '-')
>>> str
'Testing PRI-Sec (-434242332-PP-432-133423846,335)'
0 голосов
/ 02 мая 2016
ss = s.replace(s.split()[1], +s.split()[1] + 'gy')
# should have no plus after the comma --i.e.,
ss = s.replace(s.split()[1], s.split()[1] + 'gy')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...