だから、私はこのコードを持っています:
def pairwiseScore(seqA, seqB):
score = 0
length = len(seqA)
similarity = []
for x in xrange(length):
if seqA[x] == seqB[x]:
if (x >= 1) and (seqA[x - 1] == seqB[x - 1]):
score += 3
similarity.append(x)
else:
score += 1
similarity.append(x)
else:
score -= 1
return ''.join((seqA, '\n', ''.join(['|'.rjust(x) for x in similarity]), '\n', seqB, '\n', 'Score: ', str(score)))
これは、この演習のソリューションとなることを目的としています。
それはほとんどうまくいきますが、実行すると:
print pairwiseScore("ATTCGT", "ATCTAT"), '\n', '\n', pairwiseScore("GATAAATCTGGTCT", "CATTCATCATGCAA")
私はこの出力を得ます:
ATTCGT
|| |
ATCTAT
Score: 2
GATAAATCTGGTCT
| | | | | |
CATTCATCATGCAA
Score: 4
ご覧のとおり、これらのパイプ(または垂直バー)は適切にフォーマットされていません。
次のようになります。
>>> print pairwiseScore("ATTCGT", "ATCTAT")
ATTCGT
|| |
ATCTAT
Score: 2
>>> print pairwiseScore("GATAAATCTGGTCT", "CATTCATCATGCAA")
GATAAATCTGGTCT
|| ||| |
CATTCATCATGCAA
Score: 4
>>>
私の質問は:
これの何が問題なのですか:
''.join(['|'.rjust(x) for x in similarity]
関数?これらのパイプを出力時に適切にフォーマットするには、どのように編集する必要がありますか? 乾杯!