0

2mln行の大きなファイルをループする必要があります。これは次のようになります

P61981  1433G_HUMAN
P61982  1433G_MOUSE
Q5RC20  1433G_PONAB
P61983  1433G_RAT
P68253  1433G_SHEEP

現在、リスト内のすべてのエントリを取得する次の関数があります。この大きなファイルのエントリの場合、発生した行を取得しましたが、遅いです(〜10分)。おそらくループスキームが原因で、最適化を提案してもらえますか?

up = "database.txt"

def mplist(somelist):
    newlist = []
    with open(up) as U:
        for row in U:
            for i in somelist:
                if i in row:
                    newlist.append(row)
    return newlist

の例somelist

somelist = [
    'P68250',
    'P31946',
    'Q4R572',
    'Q9CQV8',
    'A4K2U9',
    'P35213',
    'P68251'
]
4

1 に答える 1