作者xji4y3ru (千眼万雨)
看板Python
标题[问题] 如何优化回圈的写法
时间Mon Mar 1 17:15:51 2021
我写了一个把档案的位元顺序颠倒之後再生成新档案的程式,用的主要是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://webptt.com/cn.aspx?n=bbs/Python/M.1614590153.A.614.html
1F:推 handsomeLin: 一直用insert效率当然慢啊 03/02 03:27
2F:→ xji4y3ru: 拍谢,新手自学很多眉角都不知道,是因为我一直insert到 03/02 11:58
3F:→ xji4y3ru: list的第一个位置所以list的元素一直重新排序所以慢的吗 03/02 11:59
4F:推 s0914714: 举例来说 要在list index=2的地方插入元素 03/02 16:12
5F:→ s0914714: 必须把index=2(包含)之後所有元素往後移一位 03/02 16:13
6F:→ s0914714: 再将要插入的元素填到index=2的位置 03/02 16:14