在满足条件之后重新输入if循环Python3

时间:2018-11-13 17:35:35

标签: python-3.x if-statement

我有一个带有基因起始和终止位点的csv文件。我想遍历文件,压缩转录的重叠区域。我的数据被格式化为一个简短列表的列表(包含“染色体编号”,“起始位点”,“终止位点”)。在我的代码中,我从列表中读取列表,并将其压缩在一个循环中,以指定它们必须位于同一条染色体上,否则退出循环。但是,退出循环后,我将能够使用新的染色体编号作为基线并使用它重新启动循环。有办法可以做到吗?

1 个答案:

答案 0 :(得分:0)

在我看来,您最适合在这种情况下使用函数。您的函数可以将一个染色体数和一个列表作为参数。然后,它将根据您传递给它的特定信息来处理数据。

def loop_it(chromosome_number, _list):
    condensed_list = []
    for item in _list:
        if item[0]  == chromosome_number:
            condensed_list.append(item)
        else:
            pass
    return condensed_list

然后,您可以定义列表,并将其与希望在其上找到的染色体编号一起传递给函数。所以说你有一个清单:

data_list = [[7, "ATG", "GCG"],[2, "AGG", "GCG"]] #format ->["chromosome number", "start site", "end site"]

现在,您可以使用不同的染色体编号反复遍历列表。

chrome7 = loop_it(7, data_list)chrome2 = loop_it(2, data_list)