我想根據給定的id過濾來自大文件(列表清單,10M+
行)的記錄。從Python中的大文件中選擇部分記錄的更有效方法
selected_id = list() # 70k+ elements
for line in in_fp: # input file: 10M+ lines
id = line.split()[0] # id (str type), such as '10000872820081804'
if id in selected_id:
out_fp.write(line)
上面的代碼很耗時。我想起了一個想法。商店selected_id
爲dict
而不是list
。
任何更好的解決方案?
你是不是存儲每個ID單獨的值,所以'dict'似乎有點小題大做。也許是'set'? –
@JohnGordon,因爲'set'不可用。將'selected_id'映射到任意值,例如'True'。 – SparkAndShine
你確定它不可用? http://stackoverflow.com/questions/3949310/how-is-set-implemented –