我有一個數字集,其中包含2375013唯一的數字在txt文件中。數據結構是這樣的:如何將特定號碼有效匹配到號碼集?
11009
900221
2
3
4930568
293
102
我想從另一個數據線用於提取我需要什麼數據集數相匹配的數字。所以,我這樣編碼:
6 def get_US_users_IDs(filepath, mode):
7 IDs = []
8 with open(filepath, mode) as f:
9 for line in f:
10 sp = line.strip()
11 for id in sp:
12 IDs.append(id.lower())
13 return IDs
75 IDs = "|".join(get_US_users_IDs('/nas/USAuserlist.txt', 'r'))
76 matcher = re.compile(IDs)
77 if matcher.match(user_id):
78 number_of_US_user += 1
79 text = tweet.split('\t')[3]
但它需要大量的時間來運行。有沒有想法減少運行時間?
更改存儲數字的方式。把它們放在一個sqlite數據庫中併爲它們編制索引。然後使用SQL進行查詢。 –
確實,如果您的數據不適合內存,sqlite可能是一個很好的解決方案。這不是這種情況(200萬整數少於20 Mb)。 – log0