нумерация членов последовательности - PullRequest
0 голосов
/ 14 июня 2011

Мне нужны дополнительные коды Python, которые будут нумеровать левый столбец выходных данных ниже, как я показал в правом столбце: коды здесь просто делят последовательность на 3 секунды. Теперь я хочу пронумеровать их от 1 до последнего, как я сделал вручную в правом столбце.

cds = "atgagtgaacgtctgagcattaccccgctggggccgtatatcggcgcacaataa"

for i in range(0,len(cds),3):
     print cds[i:i+3],
... 
Atg 1
Agt 2
Gaa 3
Cgt 4
Ctg 5
Agc 6
Att 7
Acc 8
Ccg 9
Ctg 10
Ggg 11
Ccg 12
Tat 13
Atc 14
Ggc 15
Gca 16
Caa 17
Taa 18
Taa 19

Ответы [ 4 ]

3 голосов
/ 14 июня 2011
cds = "atgagtgaacgtctgagcattaccccgctggggccgtatatcggcgcacaataa"

for num, i in enumerate(range(0,len(cds),3)):
    print cds[i:i+3], num + 1
1 голос
/ 14 июня 2011

Не уверен, что это то, что вы хотите, но:

cds = "atgagtgaacgtctgagcattaccccgctggggccgtatatcggcgcacaataa"
for data in ((i+1, cds[i:i+3], i+1) for i in xrange(0, len(cds), 3)):
    #do something
    print data
0 голосов
/ 14 июня 2011
for item in map(lambda x,y,z: [z[0]+1,"".join([x,y,z[1]])], list(cds)[::3],list(cds)[1::3],enumerate(list(cds)[2::3])):
    print item[1].capitalize(), item[0]
0 голосов
/ 14 июня 2011

Здесь вы можете прочитать об этом способе

>>> cds = "atgagtgaacgtctgagcattaccccgctggggccgtatatcggcgcacaataa"
>>> for ind, val in enumerate(range(0,len(cds),3), start=1):
...     print cds[val:val+3].capitalize(), ind
...
Atg 1
Agt 2
Gaa 3
Cgt 4
Ctg 5
Agc 6
Att 7
Acc 8
Ccg 9
Ctg 10
Ggg 11
Ccg 12
Tat 13
Atc 14
Ggc 15
Gca 16
Caa 17
Taa 18
>>>
...