0

これまでのところ、文字が変わるように見えるコードがあります。ただし、次のように変更する必要があります。すべての G が C になります。すべての C が G になります。すべての T が A になります。そしてすべての A が T になります。

これが私の問題が起こっているところです。たとえば、T は A になり、A は T になるので、コードは単に T のままにします。これは、それを A に変更し、同じ文字を T に戻すだけだからです。すべての変更が同時に行われるため、そのように重複することはありません。G to C、C to Gも同様です。

これは、テキスト ファイルの内容のサンプルです。

基本的には、そのような巨大な文字列です。上記のように、すべての文字を逆にする必要があります。同様に、文字列を変更する前に「GCAA」という文字列が出現する回数を数えようとしています。

これまでの私のコードは次のとおりです。

f = open("filename.txt", "r")
from string import maketrans
table = maketrans("G", "C")
table = maketrans("C", "G")
table = maketrans("T", "A")
table = maketrans("A", "t")
print(f.read().translate(maketrans('G','C')))
print(f.read().translate(maketrans('C','G')))
print(f.read().translate(maketrans('T','A')))
print(f.read().translate(maketrans('A','T')))

print(table)

でもどうやって数えたらいいのかわからないので、まだその部分にたどり着いていません。

4

1 に答える 1

0

次のように maketrans を 1 回呼び出します。

from string import maketrans
table = maketrans("GCTA", "CGAT")
f = open("filename.txt", "r")
input = f.read()
print(input.translate(table))
print(input.count('GCAA'))
于 2013-02-13T23:29:53.797 に答える