форматирование печати в python 3 - PullRequest
0 голосов
/ 18 апреля 2011

Я пытаюсь напечатать на Python 3, и у меня возникли проблемы. В моем коде есть цикл for, который выглядит следующим образом:

seq = input("enter DNA sequence to search: ")
pat = re.compile('(.{10})(ATC.{3,6}CAG)')
li = []
output_lines = [] 
for mat in pat.finditer(seq):
    x = mat.end()
    li.append(mat.groups()+(seq[x:x+10],))
for u in li:
    z = u[1] 
    A = z.count('A')
    C = z.count('C') 
    G = z.count('G') 
    T = z.count('T')
    sumbases = [A,C,G,T]
    print(sumbases)

Когда я печатаю sumbases, я получаю это, например:

[1, 2, 3, 4]
[2, 0, 1, 4]

Я пытаюсь отформатировать вывод следующим образом:

[1, 2, 3, 4],[2, 0, 1, 4]

Может кто-нибудь показать мне проблему? Заранее спасибо.

1 Ответ

2 голосов
/ 18 апреля 2011

Вы можете попробовать это:

output_lines = []
for u in li:  
    z = u[1]  
    A = z.count('A')  
    C = z.count('C')   
    G = z.count('G')   
    T = z.count('T')
    sumbases = "A,C,G,T" # I suppose you format it here differently
    y = sumbases.replace("\n"," ")  # not sure why you need this

    # print(y) # don't print now, print later...
    output_lines.append(y)

print(','.join(output_lines))

РЕДАКТ. для вашего отредактированного вопроса:

seq = input("enter DNA sequence to search: ")
pat = re.compile('(.{10})(ATC.{3,6}CAG)')
output_lines = [] 
for mat in pat.finditer(seq):
    x = mat.end()
    z = (mat.groups()+(seq[x:x+10],)[1]
    output_lines.append(str([z.count(a) for a in 'ACGT')]))
print(','.join(output_lines))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...