2015-01-30 3 views
7

Моя программа до сих пор:Сравнение последовательностей ДНК в Python 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) 

Я ожидаю, что выход вдоль линий:

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

Но вместо того, чтобы выход:

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

ответ

6

Вы совсем рядом ..

print ("".join(mismatches)) 

будет делать трюк и печати по требованию, который

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

Благодаря человеку, который работал супер! Не знаю, почему, хотя, все еще изучая Python 3 – luanswan2002

+2

Все, что он делает, говорит: «Возьмите список несоответствующих символов по порядку и присоедините их к одной строке, ничем не отделенной». Если вы сделали «", ". Join (mismatches)', вы получили бы тот же результат с разделом запятой, а не скрежетом вместе. –