私はJavaでそれを行う方法を単純に解決する多くの答えがあることを認識していますが、の実装と概念的に似ているそれは私にははるかによく知られているからです。JavaとPythonの文字列インデックスとの比較
Java関数cgRatio
は、DNA文字列を取り、すべてのインデックスを調べて、文字列の "C"と "G"文字値の出現を数え、その文字列の長さに対する比率を返します。私は関数の引数として次の文字列を渡す場合、例えば: "ATGGCGCATTAA"
は、私は5月12日の戻り値または4.1666...
Pythonで
のフロートになるだろう、この関数はそうのように書くことができます
def cgRatio(dna):
count = 0
for i in range(len(dna)):
if dna[i] == "C" or dna[i] == "G":
count += 1
return 1.0 * count/len(dna)
単純なprint cgRatio("ATGGCGCATTAA")
は、望ましい結果を生成します。
私は、dna.charAt(i)
という文字列に変換したり、比較のための関数の最初に新しいchar
オブジェクトをインスタンス化するなどのソリューションを見てきました。このような単純な作業では、これはあまりにも複雑に思えます。 Pythonはこのタスクでは優れていますか、それともJavaでこれを行うより効率的な方法がありますか?
なぜ文字列に変換するのですか? – Sayse
インデックスの文字列を文字と比較したいと思います。 Pythonは気にしませんが、Javaは私にdna [index] == "C"を許可しません。 Javaの実装はdna.charAt(index)== ___のように見えますが、文字列として読み取るため "C"は使用できません。 – ASwiftPeregrine
いいえ、Javaには 'dna [index] .equals(" C ")'が必要です。 – IQV