首页 > 解决方案 > 如果有的话(s in line for s in list):打印行...不工作

问题描述

我试图仅提取文件中包含列表中字符串的行,例如 MSTRG.2 在我的列表中,我希望在我的输出文件中包含包含此字符串的行。我使用了下面的代码,但由于某种原因,提取的行不一定包含列表中的字符串。

id_list = []

for line in gff_compare:
    split_line = line.strip().split('\t')
    class_code = split_line[2]

    if class_code == 'u':
        if split_line[3] not in id_list:
            id_list.append(split_line[3])


for line in feature_counts:
    split_line_2 = line.strip().split('\t')
    string_ids = split_line_2[0]

    if any(s in string_ids for s in id_list):
        outfile.write(line)

outfile.close()

id_list仅包含 1,511 个元素,而outfile有超过 30,000 行(包含列表中有字符串的行和列表中没有字符串的行)。无法弄清楚为什么它不仅根据列表中的字符串拉出我想要的行。

标签: pythonpython-3.xif-statement

解决方案


推荐阅读