Re: [問題] 想請問有更有效率的寫法嗎?已刪文

看板Python作者 (Neisseria)時間9年前 (2014/08/24 16:25), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/3 (看更多)
如果直接用 dict 或是 set 會比用 list 轉 set 所用的時間少 使用 timeit 模組測得時間,單位是秒,重覆 100000 次。 dict: 8.84833312035 set: 8.80254411697 list: 12.5947060585 最後,附上我寫的測試程式,可供參考 http://pastebin.com/AhmHfPPC ※ 引述《sariel0322 (sariel)》之銘言: : 我想把一個列數相當多的csv檔案 : 把裡面重複的列數給刪除掉 : 我只能想到這種寫法: : import csv : rows = [] : a = 0 : o = open("output.csv","w") : f = open("input.csv","r") : for row in csv.reader(f): : rows.append(row[0]+","+row[1]+","+row[2]+","+row[3]+","+row[4]+","+row[5]+","+row[6]+","+row[7]+","+row[8]+","+row[9]+","+row[10]) : for i in set(rows): : o.write(i+"\n") : f.close() : o.close() : 但由於行數非常多,資料量也大(csv檔案約400mb) : 因此全部跑完可能需要五天(有寫個計數器來大約計算過,為了節省空間沒列出來) : 想請問有沒有更有效率的寫法 -- Happy Computing Tips and Recipes for Unix and programming http://cwchen123.tw/ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.105.112.5 ※ 文章網址: http://www.ptt.cc/bbs/Python/M.1408868730.A.5A6.html

08/24 17:14, , 1F
努力推文後才發現有人回了 XD
08/24 17:14, 1F
文章代碼(AID): #1J-Q5wMc (Python)
文章代碼(AID): #1J-Q5wMc (Python)