поиск строк во всех строках текстового файла: Python - PullRequest
0 голосов
/ 21 октября 2011

возникли проблемы, так что, надеюсь, могли бы помочь.

У меня есть текстовый файл с идентификационным номером и набором «дескрипторов» в каждой строке. Дескрипторы могут быть или не быть уникальными для каждой строки (они могут использоваться несколько раз по всему документу).

Я в основном хочу идентифицировать все идентификационные номера, которые содержат определенный дескриптор ... мой код работает, но он находит только первое вхождение дескриптора, а не все из них. Любое быстрое решение?

Все дескрипторы уже есть в списке. Пример текстового файла:

ID_45555 (tab) some irrelevant data (tab) **DESCRIPTOR1** DESCRIPTOR2 DESCRIPTOR3

ID_55555 (tab) some irrelevant data (tab) DESCRIPTOR200 **DESCRIPTOR1** DESCRIPTOR599

Код:

for line in file:
    line = line.strip()
    line = line.split("\t")
    IDNUMBER = line[0]
    DESCRIPTOR = line[2]
    for x in total_list:
        if x in DESCRIPTOR:
            print x, DESCRIPTOR

1 Ответ

0 голосов
/ 21 октября 2011

Я бы предложил для этого использовать dict с дескрипторами в качестве ключей и соответствующими идентификаторами в качестве значений.Вы просматриваете файл и в каждой строке добавляете идентификатор в список, который хранится в словаре под каждым дескриптором.Например:

by_descriptors = collections.defaultdict(list)
for line in file:
    id, _, descriptors = line.strip().split("\t")
    for d in descriptors.split():
        by_descriptors[d].append(id)
# to find all IDs for a given descriptor:
by_descriptors.get(id, [])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...