对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'(下一个密码子)]等...
最佳答案
不要将bb
复制到mylist
,然后尝试就地修改mylist
。只需从bb
复制到mylist
:
bb = 'AUGGCCAUGGCGCCCAGAACUGAGAUCAAUAGUACCCGUAUUAACGGGUGA'
mylist = []
for i in range(0, len(bb), 3):
mylist.append(bb[i:i+3])
print mylist
输出:
[“ AUG”,“ GCC”,“ AUG”,“ GCG”,“ CCC”,“ AGA”,“ ACU”,“ GAG”,“ AUC”,“ AAU”,“ AGU”,“ ACC”,“ CGU”,“ AUU”,“ AAC”,“ GGG”,“ UGA”]
关于python - 在尝试删除字符并正常工作时,为什么会不断出现索引错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35636381/