回覆列表
-
1 # 行走的割草機
-
2 # JOJO0614
如果列表是已經排序,找元素用二分查詢。如果列表是無序遍歷一遍還好。也可以用多執行緒,舉個例子 執行緒1處理【0,10000】...執行緒5處理【40000,50000】5個執行緒同時處理。
-
3 # soIoist
可以把列表替換為numpy陣列儲存,然後儘量使用numpy對資料進行處理,如果資料無法使用numpy處理,可以將處理函式用c/c++做成動態連結庫給python呼叫。
-
4 # 桃花原記
5萬資料非要提速的話:
停留在python裡,使用multi process處理. Python 不支援 multi thread使用資料分析庫Numpy, 因為其可以支援連續儲存,節省便利時間使用cython 提速,方法多種,直接呼叫c庫
好吧,大佬們都不願意回答,隨便某度一下,其他地方也是含糊了事,你這邊說的也不是很清楚,某乎
那邊倒是有個類似的問題,看了一下處理方案。說實話沒怎麼看懂,就是最後一個大牛提出了一個建議,說你可以把這個大列表分成幾個小列表分別處理,這給了我一點提醒,我在寫一個爬蟲的時候,照著大佬的原始碼改編的,記得一個老師的原始碼上用了一個pool = pool() 當時沒細看,老師怎麼寫,直接就照著扒下來,反正我的目的達到了,老師也沒重點講這部分,就那麼地了,但是看了你的問題我直接跑回去,重點扒了一下。建議你看一下 Pool類 這個類可以快速的處理你拆分的小列表
Pool類可以提供指定數量的程序供使用者呼叫,當有新的請求提交到Pool中時,如果池還沒有滿,就會建立一個新的程序來執行請求。如果池滿,請求就會告知先等待,直到池中有程序結束,
僅供參考
字數太多,剩下的自己查詢一下吧,原始碼好多,粘到這裡是不是感覺怪怪的