2016-07-10 135 views
1

我是Python的初學者。我需要替換AREDTUXY而不使用替換功能。例如:Apple在樹後面。之後:TpplX是bXinY T tUXX。 你能幫忙嗎?由於在Python中不使用替換函數替換多個字母

+0

爲什麼你不能使用替換功能? – Soviut

+0

您可以使用字典從一個字符映射到另一個字符,然後使用映射創建一個新字符串。如果遇到麻煩,試試它併發布一些代碼。 – wwii

+0

我是初學者,我不能使用任何現有的功能來解決這個問題。 :-( – Pydummy

回答

2

您可以使用str.translatestring.maketrans

import string 
match = "ARED" 
replace = "TUXY" 
translator = string.maketrans(match, replace) 

s = "Apple is behind a tree." 
s.translate(translator) # => 'Tpple is behind a tree.' 

但是,你會發現,這是區分大小寫的。

如果你想不區分大小寫的替代,串聯小寫字符 還有:

match = "AREDared" 
replace = "TUXYtuxy" 
translator = string.maketrans(match, replace) 

s = "Apple is behind a tree." 
s.translate(translator) # => 'Tpplx is bxhiny t tuxx.' 

對於Python 3,str類都有自己的maketrans方法。因此,請改用 translator = str.makestrans(match, replace) - 不再需要string模塊。

+0

嗨Rushy,謝謝你的回答。導入字符串? – Pydummy

+0

編寫你自己的字符串模塊,或者看看它如何編寫 – EL3PHANTEN

+0

我試過你給我看的代碼,但它有一個錯誤消息「AttributeError:'module'object has no attribute'maketrans'」 – Pydummy