2015-01-30 22 views
7

Programım şimdiye kadar geçerli:karşılaştırılması DNA dizileri 3

seq_a = "TGGAGGCAATGGCGGCCAGCA" 
seq_b = "GACTCCTCCTCCTCCTGCTCA"  
len_a = len(seq_a)  
len_b = len(seq_b)  
print("Length of Sequence A: " + str(len_a))  
print()  
print("Length of Sequence B: " + str(len_b)) 
print() 

def sequence_compare(seq_a, seq_b): 
     len1 = len(seq_a) 
     len2 = len(seq_b) 
     mismatches = [] 
     for pos in range (0, min(len1, len2)) : 
       if seq_a[pos] != seq_b[pos]: 
        mismatches.append('|') 
       else: 
        mismatches.append(' ') 
     print (seq_a) 
     print (mismatches) 
     print (seq_b) 
sequence_compare(seq_a,seq_b) 

Ben çizgisinde bir çıkış bekliyoruz:

TGGAGGCAATGGCGGCCAGCA 
||||||||| ||||||||| 
GACTCCTCCTCCTCCTGCTCA 

Ama bunun yerine çıktısı:

TGGAGGCAATGGCGGCCAGCA 
['|', '|', '|', '|', '|', '|', '|', '|', '|', ' ', '|', '|', '|', '|', '|', '|', '|', '|', '|', ' ', ' '] 
GACTCCTCCTCCTCCTGCTCA 

cevap

6

Oldukça yakınsınız ..

print ("".join(mismatches)) 

hile yapmak ve gerektiği gibi süper çalıştı

||||||||| ||||||||| 
+0

Teşekkür adam olan yazdırır! Yine de neden olmasın, hala Python 3 – luanswan2002

+2

'u öğrenmenin tek nedeni, "Eşleşmeyen karakterlerin listesini sırayla al ve hiçbir şeyle ayrılmış tek bir dize olmalarına katıl." Eğer '', '' 'yi yapmış olsaydınız (uyumsuzluklar) bir araya gelerek, aynı çıktıyı virgülle ayırmak yerine birleştirirdiniz. –

İlgili konular