O string.replace () está obsoleto no python 3.x. Qual é a nova maneira de fazer isso?
O string.replace () está obsoleto no python 3.x. Qual é a nova maneira de fazer isso?
Respostas:
re.sub()
,.
string
funções estão obsoletas. str
métodos não são.
'foo'.replace(...)
O método replace () no python 3 é usado simplesmente por:
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
Você pode usar str.replace () como uma cadeia de str.replace () . Pense que você tem uma string como 'Testing PRI/Sec (#434242332;PP:432:133423846,335)'
e deseja substituir todo o '#',':',';','/'
sinal com '-'
. Você pode substituí-lo desta maneira (maneira normal),
>>> 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)'
ou dessa maneira (cadeia de str.replace () )
>>> str = 'Testing PRI/Sec (#434242332;PP:432:133423846,335)'.replace('#', '-').replace(':', '-').replace(';', '-').replace('/', '-')
>>> str
'Testing PRI-Sec (-434242332-PP-432-133423846,335)'
FYI, ao anexar alguns caracteres a uma palavra arbitrária e com posição fixa dentro da string (por exemplo, alterar um adjetivo para um advérbio adicionando o sufixo -ly ), você pode colocar o sufixo no final da linha para facilitar a leitura. Para fazer isso, use split()
dentro replace()
:
s="The dog is large small"
ss=s.replace(s.split()[3],s.split()[3]+'ly')
ss
'The dog is largely small'
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')