我需要将看起来像这样的字符串TAGGGC
翻译成fa
(TAG->f
,GGC->a
,其中加密值不仅可以是字母,还可以是一些特殊字符)。我知道string.maketrans()
和translate()
但这些仅适用于1-1解码。
在这种情况下我是否可以使用其他本机Python模块/函数,还是应该编写自己的函数?
答案 0 :(得分:0)
你试过了吗?
mystring.replace("TAG","f").replace("GGC","a")
如果有其他约束,那么您可能需要回到re.sub
答案 1 :(得分:0)
如果它比你的例子更复杂,你可以根据re.sub
定义一个带有dict的小函数作为输入。
In [98]: def repl(d, s):
...: p = re.compile('|'.join(d))
...: return p.sub(lambda m:d[m.group()], s)
In [99]: d = {'TAG':'f',
'GGC':'a'}
In [100]: repl(d,'TAGGGC')
Out[100]: 'fa'