если есть (s в строке для s в списке): вывести строку ... не работает - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь извлечь только строки в файле, которые содержат строку в списке, например, 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 содержит только 1511 элементов, тогда как outfile имеет более30000 строк (содержит строки, которые имеют строку в списке, и строки, которые не имеют строки в списке). Не могу понять, почему он не только вытаскивает строки, которые я хочу, основываясь на строках в списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...