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'
]