Python:maketrans/translate等效于将3个字符的代码解码为1个字符
我需要将如下所示的字符串:Python:maketrans/translate等效于将3个字符的代码解码为1个字符,python,decoding,Python,Decoding,我需要将如下所示的字符串:TAGGGC转换为fa(TAG->f,GGC->a,其中加密值不仅可以是字母,还可以是一些特殊字符)。我知道string.maketrans()和translate()但它们只适用于1-1解码 在这种情况下,我是否可以使用任何其他本机Python模块/函数,或者我是否应该编写自己的函数?您是否尝试过: mystring.replace("TAG","f").replace("GGC","a") 如果有额外的约束,那么您可能需要求助于re.sub如果它比您的示例更复杂,
TAGGGC
转换为fa
(TAG->f
,GGC->a
,其中加密值不仅可以是字母,还可以是一些特殊字符)。我知道string.maketrans()
和translate()
但它们只适用于1-1解码
在这种情况下,我是否可以使用任何其他本机Python模块/函数,或者我是否应该编写自己的函数?您是否尝试过:
mystring.replace("TAG","f").replace("GGC","a")
如果有额外的约束,那么您可能需要求助于
re.sub
如果它比您的示例更复杂,您可以基于re.sub
定义一个小func,它接受一个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'
那str.replace怎么样?