0

次のような文字列を ( , に変換する必要がありますTAGGGCfa暗号TAG->fGGC->aされた値は、文字だけでなく特殊文字も使用できます)。私は知ってstring.maketrans()いますtranslate()が、これらは1対1のデコードでのみ機能します。

この場合に使用できる他のネイティブ Python モジュール/関数はありますか、それとも独自の関数を作成する必要がありますか?

4

2 に答える 2

0

やってみました:

mystring.replace("TAG","f").replace("GGC","a")

追加の制約がある場合は、フォールバックする必要があるかもしれませんre.sub

于 2013-02-04T16:11:22.923 に答える
0

あなたの例よりも複雑な場合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'
于 2013-02-04T16:35:03.353 に答える