Deleting the first element of a list
Chad Netzer
cnetzer at mail.arc.nasa.gov
Wed Oct 2 18:49:32 EDT 2002
On Wednesday 02 October 2002 15:36, JB wrote:
> Is using del to delete the first element (that is, the 0th
> element) of a list faster than x = x[1:]?
Looks like it (timed both short and long lists. w/ loops unrolled):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
import time
short_list = [0,1,2,3,4,5] * 2
long_list = short_list * 10000
n = 10
avg = 0
lists = [ short_list, long_list ]
for l in lists:
for i in xrange(n):
tmp_list = l[:]
start = time.time()
del tmp_list[ 0 ]
del tmp_list[ 0 ]
del tmp_list[ 0 ]
del tmp_list[ 0 ]
del tmp_list[ 0 ]
del tmp_list[ 0 ]
del tmp_list[ 0 ]
del tmp_list[ 0 ]
del tmp_list[ 0 ]
del tmp_list[ 0 ]
end = time.time()
avg = avg + (end - start)
avg = avg / 10 / n
print "avg (del):\t %.13f secs" % (avg,)
for i in xrange(n):
tmp_list = l[:]
start = time.time()
tmp_list = tmp_list[ 1: ]
tmp_list = tmp_list[ 1: ]
tmp_list = tmp_list[ 1: ]
tmp_list = tmp_list[ 1: ]
tmp_list = tmp_list[ 1: ]
tmp_list = tmp_list[ 1: ]
tmp_list = tmp_list[ 1: ]
tmp_list = tmp_list[ 1: ]
tmp_list = tmp_list[ 1: ]
tmp_list = tmp_list[ 1: ]
end = time.time()
avg = avg + (end - start)
avg = avg / 10 / n
print "avg (slicing):\t %.13f secs" % (avg,)
print
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
avg (del): 0.0000028991699 secs
avg (slicing): 0.0000033883095 secs
avg (del): 0.0032141237535 secs
avg (slicing): 0.0115537309935 secs
--
Chad Netzer
cnetzer at mail.arc.nasa.gov
More information about the Python-list
mailing list