看板 Python 關於我們 聯絡資訊
我寫了一個把檔案的位元順序顛倒之後再生成新檔案的程式,用的主要是list跟while, 程式碼如下: ------------------------------------------- # -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. """ arr1=[] f = open(r"D:/SSI/15070_c.i.png",'rb') n = 0; s = f.read(1) while s: arr1.insert(0,s) s = f.read(1) f.close() tt=len(arr1) print (tt) f=open("D:/SSI/15070_c.i_.png",'wb') n=0 while n<tt: f.write(arr1[n]) n=n+1 f.close() ------------------------------------------- 檔案大小在100kb左右速度都還可以在數秒中完成,但是200kb就要十幾秒,500kb大約就 要1分鐘。請問是不是因為這個寫法太笨了,浪費太多時間?有什麼可以優化的作法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.13.165.114 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1614590153.A.614.html
handsomeLin: 一直用insert效率當然慢啊 03/02 03:27
xji4y3ru: 拍謝,新手自學很多眉角都不知道,是因為我一直insert到 03/02 11:58
xji4y3ru: list的第一個位置所以list的元素一直重新排序所以慢的嗎 03/02 11:59
s0914714: 舉例來說 要在list index=2的地方插入元素 03/02 16:12
s0914714: 必須把index=2(包含)之後所有元素往後移一位 03/02 16:13
s0914714: 再將要插入的元素填到index=2的位置 03/02 16:14