我构建了一个小测试,看看pop,del和remove之间的运行时是否存在差异.我期望删除和pop/del之间的区别,因为删除搜索值并删除它,并弹出/删除索引.
考试:
import time
list1 = []
list2 = []
list3 = []
for num in xrange(100000):
list1.append(num)
list2.append(num)
list3.append(num)
print len(list1)
ticks = time.time()
for num in xrange(100000):
list1.pop()
print "list 1 is over", list1
print time.time() - ticks
print "------------------------------------------"
print len(list2)
ticks = time.time()
for num in xrange(99999, -1, -1):
del list2[num]
print "list 2 is over", list2
print time.time() - ticks
print "------------------------------------------"
print len(list3)
ticks = time.time()
for num in xrange(0,100000):
list3.remove(num)
print "list 3 is over", list3
print time.time() - ticks
Run Code Online (Sandbox Code Playgroud)
结果是:
100000
list 1 is over []
0.0269999504089
------------------------------------------
100000
list 2 is over []
0.0169999599457
------------------------------------------
100000
list 3 is over []
2.55900001526
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,删除更糟糕(正如预期的那样),但是弹出速度比del大约50%-60%(取决于运行速度)慢.
这是为什么?(我尝试搜索它(我猜它是实现),但找不到原因.也许原因在于我是如何写的?)
| 归档时间: |
|
| 查看次数: |
1681 次 |
| 最近记录: |