编程 newb/python newb,我的工作要求不高,所以我找到了很多空闲时间来自学如何编码。
我正在处理这个rosalind.info 问题。
到目前为止,这是我的代码:
# -*- coding: utf-8 -*-
"""
Created on Thu Jan 21 09:01:51 2016
@author: aseyedian
"""
codon = ''
q=0
with open('rosalind_prot.txt', 'r') as prot:
bb = list(prot.read())
mylist = []
for i in range(len(bb)):
mylist.append(bb[i])
for i in range(0, len(bb),3):
mylist[i] = [''.join(mylist[i:i+3])]
for i in range(1, len(mylist), 3):
del mylist[i]
for i in range(2, len(mylist), 3):
del mylist[i]
print mylist
#This is to create a list of codons which then are translated into amino acids
由于某些原因,
for i in range(1, len(mylist), 3):
del mylist[i]
但是,返回一个 IndexError(列表分配超出范围),
for i in range(1, len(mylist), 3):
mylist[i] = 'k'
将每个第二个列表成员转换为字母“k”。为什么是这样?
仅供参考,我现在要做的是将每个核苷酸放入一个列表中,然后将它们按三个分组,然后在将它们合并到第一个列表成员后删除以下两个列表成员,然后转到下一个密码子。
例如:['A', 'U', 'G'] -> [['AUG'], 'U', 'G'] -> ['AUG'], ['GCC'(下一个密码子) ], ETC...