作者leondemon (狗狗)
看板Python
标题Re: [问题] List扩编的处理速度...
时间Sat Apr 25 02:02:46 2009
比较两个将原list copy出来後 再扩编时的速度
也就是纯粹比较
y = x[:]
y.append(i)
和
y = x + [i]
这两个速度的不同...
code如下
========
from time import time
a = 30000
b = 30000
x = range(a)
y=[]
c=0
A=time()
for i in xrange(b):
y = x[:] #测试方法一 先复制 (不能用y = x)
y.append(i) #测试方法一 再append
c+=1
print time()-A, c, len(y) #呈现"运作时间",操作次数,是否有成功扩建list
if y is x: #测试y和x是不是同一物件
print "True"
else:
print "False"
x=range(a)
y=[]
c=0
A=time()
for i in xrange(b):
y = x + [i] #测试方法二
c+=1
print time()-A, c, len(y)
if y is x:
print "True"
else:
print "False"
==========
结果:
7.98008298874 30000 30001
False
8.92190909386 30000 30001
False
先复制list之後再append 比直接+=快...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.129.59.68
1F:→ leondemon:另把ab参数改成一大一小户比 a越大(list越大)慢得较明显 04/25 02:07
※ 编辑: leondemon 来自: 140.129.59.68 (04/25 04:01)