能否将数据文件作为函数参数?多文件序列匹配函数优化咨询
合并序列匹配函数,支持多数据集处理
完全可以合并这两个函数,核心思路是把要处理的数据集和对应名称作为参数传入函数,这样一个函数就能适配任意数量的数据集,彻底避免重复代码。
修改后的合并函数
# 在指定数据集中查找目标序列 def find_target_sequence(target, data_set, dataset_name): print(f"looking for target sequence in {dataset_name}", target) target_length = len(target) counter = 0 for element in data_set: if data_set[counter:counter+target_length] == target: print(f" match found at {counter} - {counter+target_length}") counter += 1
使用示例
假设你已经从文件加载好多个数据集(比如存在data、data1、data2...这类变量中),调用方式如下:
# 处理数据集1 find_target_sequence("你的目标序列", data, "data set 1") # 处理数据集2 find_target_sequence("你的目标序列", data1, "data set 2") # 后续扩展到更多数据集时,直接传入对应数据集和名称即可 find_target_sequence("你的目标序列", data3, "data set 3")
额外优化建议
原来的循环可以用enumerate简化,不用手动维护counter,代码更简洁清晰:
def find_target_sequence(target, data_set, dataset_name): print(f"looking for target sequence in {dataset_name}", target) target_length = len(target) for counter, _ in enumerate(data_set): if data_set[counter:counter+target_length] == target: print(f" match found at {counter} - {counter+target_length}")
不管后续扩展到15个还是20个文件,只需要加载对应的数据,调用同一个函数即可,完全不用重复编写匹配逻辑。
内容的提问来源于stack exchange,提问作者Adarsh Patra
相关产品推荐
相关产品推荐

