Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 修复将空列表指定给值“的错误”;DNA“U序列”;_Python 3.x_Pycharm_Bioinformatics_Dna Sequence_Index Error - Fatal编程技术网

Python 3.x 修复将空列表指定给值“的错误”;DNA“U序列”;

Python 3.x 修复将空列表指定给值“的错误”;DNA“U序列”;,python-3.x,pycharm,bioinformatics,dna-sequence,index-error,Python 3.x,Pycharm,Bioinformatics,Dna Sequence,Index Error,所以,这个问题是上一篇文章的延续。从那时起,我就在PyCharm中编辑了脚本,现在这个脚本具有这样的外观: import yaml file = open('/home/ihor/Документи/біоінформатика/DNA_Sequence72 - Копія.py', 'r') DNA = file.read() DNA_Sequences = DNA.split(',') Genetic_Codes = open('/home/ihor/Документи/біоінформа

所以,这个问题是上一篇文章的延续。从那时起,我就在PyCharm中编辑了脚本,现在这个脚本具有这样的外观:

import yaml
file = open('/home/ihor/Документи/біоінформатика/DNA_Sequence72 - Копія.py', 'r')
DNA = file.read()
DNA_Sequences = DNA.split(',')
Genetic_Codes = open('/home/ihor/Документи/біоінформатика/Genetic_Codes.py', 'r')
Genetic_Codes = Genetic_Codes.read()
Genetic_Codes_list = Genetic_Codes.split('\n')
for row in range(1152): #for str in list[Genetic_Codes_list] in range(1152):
    Alternative_Genetic_Codes = Genetic_Codes_list.pop(0)
    for line in range(1000):
        dna = DNA_Sequences.pop(0)
        codontable = yaml.load(Alternative_Genetic_Codes)
        codontable_sequence = ""
        for i in range(0, len(dna)-(3 + len(dna) % 3), 3):
            if codontable.get(dna[i:i + 3], codontable_sequence) == "_":
                break
            codontable_sequence += codontable.get(dna[i:i + 3], codontable_sequence)
        print(list([codontable_sequence]))
现在这个脚本只有一个错误:

索引器:从空列表中弹出


在调试器中研究变量之后,我看到,
DNA\u Sequences=DNA.split(',')
行中的变量
DNA\u Sequences
被赋值为“[](空列表)”。我的脚本将1000个DNA序列的字符串列表翻译成蛋白质,只需1个密码子表(字典),但我想要的是,这个脚本将1000个DNA序列的字符串列表翻译成蛋白质,每次运行1152个不同的密码子表。我读了很多关于这个错误的教程和其他资料,列表等等,但是我没有找到任何解决问题的方法。所有其他变量都完全正确。如何使用空列表修复此错误?我将非常感谢您的帮助。

您的代码毫无意义。尽管如此,答案还是要检查元素是否为空,如果是,则通过

for row in range(1152): #for str in list[Genetic_Codes_list] in range(1152):
    Alternative_Genetic_Codes = Genetic_Codes_list.pop(0)
    for line in range(1000):
        if len(DNA_Sequences) == 0:
            pass
        else:
            dna = DNA_Sequences.pop(0)
            codontable = yaml.load(Alternative_Genetic_Codes)
            codontable_sequence = ""
            for i in range(0, len(dna)-(3 + len(dna) % 3), 3):
                if codontable.get(dna[i:i + 3], codontable_sequence) == "_":
                    break
                codontable_sequence += codontable.get(dna[i:i + 3], codontable_sequence)
            print(list([codontable_sequence]))

你真的应该使用biopython或类似的工具。

pop
从数组中删除项目,因此外部循环的第一次迭代会创建一个空数组。解决方案是按索引访问数组项,而不删除它们:

for line in range(1000):
    dna = DNA_Sequences[line]

我由衷地感谢你的精彩提示!你救了我的生物信息学项目)成功了!