python-3.x - 在满足 else 条件后重新进入 if 循环 Python3
问题描述
我有一个带有基因起始和结束位点的 csv 文件。我想遍历文件,压缩重叠的转录区域。我的数据被格式化为一个短列表(包含“染色体编号”、“起始位点”、“结束位点”)。在我的代码中,我从列表中读取列表并将它们压缩在一个循环下,指定它们必须在同一条染色体上,否则退出循环。不过,在我退出循环之后,我能够将新的染色体编号作为基线并使用它重新启动循环。有没有办法我可以做到这一点?
解决方案
在我看来,您最适合在这种情况下使用函数。您的函数可以将染色体编号和列表作为参数。然后它将根据您传递给它的特定信息处理数据。
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)
推荐阅读
- python - 我需要计算均值、中位数和标准差,但要询问用户数字,直到用户输入 0
- bash - 在一个字段中查找匹配项并打印下 n 个字段
- list - 将数据存储在地图列表中是包括来自先前列表的数据。扑
- python - 如果“拍摄日期”字段为空,则从照片的“创建日期”字段插入“拍摄日期”
- optimization - 如何使用 python PuLP 为优化问题添加顺序(时间序列)约束?
- python - 可以在 pandas 方法链/管道中添加变量吗?
- matlab - MATLAB Simulink:IF 语句逻辑
- flutter - 通知相邻小部件
- javascript - jQuery:如何减少事件监听器的数量?
- json - gltf 你如何处理 latice 引用?