Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:maketrans/translate等效于将3个字符的代码解码为1个字符_Python_Decoding - Fatal编程技术网

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怎么样?