2017-10-19 14 views
0

文字列を含む文字列の一部を削除しようとしています。たとえば、文字列が "atgtga"の場合、出力を "atg"にします。 私は.replace( "tga"、 "")メソッドを使用しようとしましたが、私のTAはそれを削除する代わりに文字列のその部分だけをマスクすると言っていました。文字列内の文字列を削除する

私は新しいアプローチを試みましたが、私はまだifステートメントに固執しています。

x="atgtgaacttaa" 
c=0 
q=3 

while(q<=len(x)): 
    x=x[c:q] 

    if(x=="tga" or x=="taa" or x=="tag"): 

     c=c+3 
     q=q+3 

print(x) 

私は新しい関数を作ってみましたが、私の出力は、何らかの理由で、「ATG」を無視して、それを削除しています。

def get_orf(dna_seq): 
    x=0 

    while(x<=len(dna_seq)): 
    if("taa" in dna_seq or "tag" in dna_seq or "tga" in dna_seq): 
     dna_seq=dna_seq.replace("taa","") 
     dna_seq=dna_seq.replace("tag","") 
     dna_seq=dna_seq.replace("tga","") 
     return dna_seq 
    else: 
     return dna_seq 
    x=x+1 
+3

TAが間違っています。 – Shadow

答えて

2

あなた時々、replaceを使用する事は、彼らは錫で言うことを行うことができます。

>>> x = "atgtga" 
>>> y = x.replace("tga", "") 
>>> print(y) 
atg 
0

あなたのTAが正しくありません。 は、を置き換えて、新しい文字列を指定の変更で返します。元の文字列はそのままですが、新しい文字列は別のエンティティであり、元の文字列ではなく元の文字列に依存しません。

関連する問題