次のような文字列を ( , に変換する必要がありますTAGGGC
。fa
暗号TAG->f
化GGC->a
された値は、文字だけでなく特殊文字も使用できます)。私は知ってstring.maketrans()
いますtranslate()
が、これらは1対1のデコードでのみ機能します。
この場合に使用できる他のネイティブ Python モジュール/関数はありますか、それとも独自の関数を作成する必要がありますか?
やってみました:
mystring.replace("TAG","f").replace("GGC","a")
追加の制約がある場合は、フォールバックする必要があるかもしれませんre.sub
あなたの例よりも複雑な場合re.sub
は、辞書を入力として取ることに基づいて小さな関数を定義できます。
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'