2012-02-26 20 views
110

String.replace() python 3.x üzerinde kullanımdan kaldırılmıştır. Bunu yapmanın yeni yolu nedir?python 3.x içinde string.replace() nasıl kullanılır? 3.x

2.x olarak
>>> 'hello, world'.replace(',', ':') 
'hello: world' 
+9

FWIW, ben de aynı karışıklık vardı. Google "python string replace", beni python 2.7'deki eski kullanım dışı dize işlevlerine götürdü. IMHO, bu bölüm "string.xxx()" vs "xxx (string)" i açıklayan ve insanları kullanımdan kaldırılmış dize yöntemlerine yönlendiren büyük bir kalın kutu kullanabilir. http://docs.python.org/library/stdtypes.html#string-methods – ToolmakerSteve

+1

Python belgeleri, ideal bir ilk dil olarak sunulduğunu göz önünde bulundurarak mutlak bir titremedir. Oldukça sık sık şeyler var, ama onun organize yolsuzluk nedeniyle, genellikle arama motorları, hatta kendi siteleri tarafından iyi endeksli değil. ToolMakerSteve'in bağlantısına bakın, çekirdek dize işlevleri standart tiplerde toplanır. Bu, dize işlevlerini ararken ortaya çıkmaz. –

cevap

126

, str.replace() kullanımı:

+3

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

+3

@ToolmakerSteve: 'string' işlevleri kullanımdan kaldırıldı. str yöntemleri değil. –

+0

oooh. O zaman yanılmışım. Teşekkürler! – ToolmakerSteve

78

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

Örnek:

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

bu deneyin: Bilginize

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

, ne zaman mesela bir zarf için bir sıfatı değişen (dize iç keyfi, pozisyon-sabit sözcüğe bazı karakterleri ekleme -ly son ekini ekleyerek, okunabilirlik için satırın sonundaki eki koyabilirsiniz. Bunu yapmak için, split()replace() içine kullanın:

s="The dog is large small" 
ss=s.replace(s.split()[3],s.split()[3]+'ly') 
ss 
'The dog is largely small' 
-4
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') 
+3

Bu kod soruyu yanıtlayabilirken, neden ve/veya sorunun nasıl yanıtlandığıyla ilgili ek bağlam sağlayarak uzun vadeli değerini önemli ölçüde artıracaktır. Lütfen bazı açıklama eklemek için cevabınızı [düzenleyin]. – CodeMouse92

0

replace() piton 3'te yöntemi ile basitçe 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 
+0

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

+0

Evet, bu isteğe bağlıdır. :) –

İlgili konular