[問題] 如何優化迴圈的寫法

看板Python作者 (千眼萬雨)時間3年前 (2021/03/01 17:15), 編輯推噓2(204)
留言6則, 3人參與, 3年前最新討論串1/3 (看更多)
我寫了一個把檔案的位元順序顛倒之後再生成新檔案的程式,用的主要是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

03/02 03:27, 3年前 , 1F
一直用insert效率當然慢啊
03/02 03:27, 1F

03/02 11:58, 3年前 , 2F
拍謝,新手自學很多眉角都不知道,是因為我一直insert到
03/02 11:58, 2F

03/02 11:59, 3年前 , 3F
list的第一個位置所以list的元素一直重新排序所以慢的嗎
03/02 11:59, 3F

03/02 16:12, 3年前 , 4F
舉例來說 要在list index=2的地方插入元素
03/02 16:12, 4F

03/02 16:13, 3年前 , 5F
必須把index=2(包含)之後所有元素往後移一位
03/02 16:13, 5F

03/02 16:14, 3年前 , 6F
再將要插入的元素填到index=2的位置
03/02 16:14, 6F
文章代碼(AID): #1WFB39OK (Python)
文章代碼(AID): #1WFB39OK (Python)