Python 3.x içinde string.replace () nasıl kullanılır


280

String.replace () yöntemi python 3.x'te kullanımdan kaldırılmıştır. Bunu yapmanın yeni yolu nedir?


11
FWIW, aynı karışıklığa sahiptim. Google "python string replace" beni python 2.7'deki eski kullanım dışı dize işlevlerine götürdü. IMHO, bu bölümde "string.xxx ()" ve "xxx (string)" ifadelerini açıklayan ve kullanıcıları kullanımdan kaldırılmamış dize yöntemlerine, örneğin docs.python.org/library/stdtypes.html adresine
ToolmakerSteve

8
Python belgeleri, ideal bir ilk dil olarak kabul edildiğini düşünerek mutlak bir karmakarışıktır. Oldukça sık şeyler orada, ama kötü bir şekilde organize nedeniyle, genellikle arama motorları veya hatta kendi sitesi tarafından iyi endeksli değil. ToolMakerSteve'in bağlantısına bakın, çekirdek dize işlevleri standart türlere dahil edilmiştir. Dize işlevlerini aradığınızda bu ortaya çıkmaz.
Andrew S

10
Açık olmak gerekirse: string.replace () aslında Python 3'te kullanımdan kaldırılmamıştır.
sboggs11

2
3.x için yerleşik türlerde bulunur docs.python.org/3.7/library/stdtypes.html#str.replace
JerodG

1
Bazen insanlar [string değişkeniniz] .replace anlamına geldiklerinde "str.replace" yazarlar. 'Str' aynı zamanda ilgili sınıfın adı olduğundan, bu kafa karıştırıcı olabilir.
TextGeek

Yanıtlar:


315

2.x'te olduğu gibi kullanın str.replace().

Misal:

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

4
"Re" (normal ifade) modülünün (bazı? Tümü?) Kullanımdan kaldırılmış dize işlevleri için alternatifleri vardır. Bu durumda re.sub(),.
ToolmakerSteve

8
@ToolmakerSteve: stringişlevler kullanımdan kaldırıldı. stryöntemleri değildir.
Ignacio Vazquez-Abrams

6
FWIW, Google’ı her kullandığımda eski kullanımdan kaldırılan dize işlevlerine benziyorum. İşte (kullanımdan kaldırılmamış) dize yöntemlerine bağlantı. docs.python.org/3.3/library/stdtypes.html#string-methods ~ or_for_2 ~ docs.python.org/2/library/stdtypes.html#string-methods
ToolmakerSteve

36
Python belgelerinde gezinmek için taşma yığınına gelmek zorunda kalırsam, açıkça bir sorun var. Python takımı okuyorsanız. SIRALAMA!
Andrew S

2
Sınıfı değil, nesnenin yöntemini çağırın. 'foo'.replace(...)
Ignacio Vazquez-Abrams

108

replace()<class 'str'>python3 içinde bir yöntemdir :

>>> 'hello, world'.replace(',', ':')
'hello: world'

13

Python 3'teki replace () yöntemi basitçe aşağıdakiler tarafından kullanılır:

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

2
Ayrıca 3 koyamayacağınızı ve tüm tesadüfleri değiştireceğini unutmayın.
Ender Bak

4

Sen kullanabilirsiniz str.replace () bir şekilde zincirinin str.replace () . Gibi bir dizeniz olduğunu 'Testing PRI/Sec (#434242332;PP:432:133423846,335)'ve tüm '#',':',';','/'işareti değiştirmek istediğinizi düşünün '-'. Bu şekilde değiştirebilirsiniz (normal yolla),

>>> 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)'

veya bu şekilde ( str.replace () zinciri )

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

3

Bunu dene:

mystring = "This Is A String"
print(mystring.replace("String","Text"))

1

Zaman Bilginize, dize içinde keyfi bir, sabit konumlu kelimeye bazı karakterler ekleyerek (örneğin ekini ekleyerek zarf bir sıfat değişen -ly ) kullanarak, okunabilirlik için satırın sonunda eki koyabilirsiniz. Bunu yapmak için split()içinde kullanın replace():

s="The dog is large small"
ss=s.replace(s.split()[3],s.split()[3]+'ly')
ss
'The dog is largely small'

0
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')

6
Bu kod soruyu cevaplayabilirken, soruyu neden ve / veya nasıl cevapladığı konusunda ek bağlam sağlamak uzun vadeli değerini önemli ölçüde artıracaktır. Lütfen biraz açıklama eklemek için cevabınızı düzenleyin .
CodeMouse92

Doğru cevap daha önce belirtilen string.replace python3 içinde çalışır.
jorfus
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.