Python3遍历任意长度列表提取OS=及后续关联元素的实现求助
功能实现代码
核心思路是新增状态位标记当前是否处于OS=对应的有效提取段,遍历全列表时根据状态决定是否保存元素:
OSarr = [] # 状态标记:是否处于OS=开头的有效提取段中 in_os_segment = False # 注意变量名大小写和你定义的keyLabelRun保持一致 for item in keyLabelRun: # 优先判断是否遇到了新的OS=开头元素 if 'OS=' in item: in_os_segment = True OSarr.append(item) continue # 如果当前在有效提取段中 if in_os_segment: # 遇到带=的元素,说明OS段结束 if '=' in item: in_os_segment = False else: # 不是带=的元素,加入结果 OSarr.append(item) # 不在有效段的元素直接跳过
效果验证
用你给出的示例列表运行后,得到的OSarr结果为:
['OS=Dengue', 'virus', '3', 'OS=Bacillus', 'subtilis', 'XF-1']
完全匹配提取要求,且自适应两个OS=条目之间任意长度的无=元素,同时直接遍历元素而非索引,避免了原写法可能出现的索引越界问题。
内容的提问来源于stack exchange,提问作者Norman Sabin
相关产品推荐
相关产品推荐

