如果我想在多个unicode字符上使用translate
,如:
'banana'.translate({ord('ba'):u'cd'})
我该怎么做? ord
仅适用于一个角色。那么是什么能让这种情况发生呢?
注意:How to replace multiple substrings of a string?中解释的解决方案不是兼容Python3的解决方案。我尝试按照iteritems in Python修改iteritems
,但无法使其正常工作。我是python的新手,我不知道如何使这项工作。
答案 0 :(得分:0)
您可能想要构建自己的函数,模仿翻译行为:
def trans_mock(string, **kwargs):
for k,v in kwargs.items():
string= string.replace(k,v)
return string
kwargs将成为您要替换的字符串:
print trans_mock("banana", ba="cd", na="we") # output: cdwewe
您甚至可能希望 sortof 覆盖字符串类并添加trans_mock作为方法:
class string(str):
def trans_mock(self, **kwargs):
for k,v in kwargs.items():
print k,v
self = self.replace(k,v)
return self
banana = string("banana")
print banana.trans_mock(ba="ct", na="lw") # output: ctlwlw