编程 newb/python newb,我的工作要求非常低,所以我找到了很多空闲时间来自学如何编码。
我在工作 this 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' (下一个密码子)], 等等...
最佳答案
当您从列表中删除一个项目时,它现在的项目变少了。因此,长度为 - 1 的列表不再存在。假设您有一个长度为 4 的列表。一旦您尝试访问位置 2 的列表,您已经删除了 2 个项目,并且列表只剩下 2 个项目。现在列表的位置 2 没有任何内容。取而代之的是 del mylist[0]
。
关于python - 为什么我在尝试删除时总是出现索引错误,而用字符替换却工作正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35636381/