今天吃了個基礎差的虧,雖然說知道list和set有查詢效率上的區別,但是一直不當回事
這次碰到一個活,要求是將45w的2組數據,進行匹配合並
一個是店鋪導出的訂單數據,一個是快遞給的物流數據
需要把2個匹配合並到一個表格,當然,有些人會說了,用excel處理,函數啥的,1個文件都有1g多,打開電腦得等好久才能反應,要匹配,估計得幾個小時
所以用python來寫腳本,進行數據匹配
首先原始店鋪文件是7個,一個文件里面有6.7w條數據,快遞數據是2個,1個里面有22w條,匹配就通過快遞單號進行
原始數據都全部轉化成csv,方便操作
接下去就是操作思路
1,將店鋪文件一行行進行循環,
2,每次去2個快遞數據表格里面搜索,
3,如果找到,就把快遞數據放到后面
4,如果沒找到,就原數據寫入
快遞數據做了處理,提取單號做成一個list,然后在做一個dict,格式{單號: 對應原始數據},方便找到后進行提取原始數據
然后開始循環操作,實際執行下來,每1000次查詢,需要耗費6秒左右時間
全部數據處理完畢需要30分鍾
然后進行優化
將list改成set,其他不動,結果20秒完成!這個效率簡直了!
這時就看出來了,基礎的東西,有時候就決定了效率