我如何更好地使用翻译功能?

时间:2018-03-19 15:16:59

标签: python string translate ord

如果我想在多个unicode字符上使用translate,如:

'banana'.translate({ord('ba'):u'cd'})

我该怎么做? ord仅适用于一个角色。那么是什么能让这种情况发生呢?

注意:How to replace multiple substrings of a string?中解释的解决方案不是兼容Python3的解决方案。我尝试按照iteritems in Python修改iteritems,但无法使其正常工作。我是python的新手,我不知道如何使这项工作。

1 个答案:

答案 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