2016-07-10 138 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