Skip to content

Instantly share code, notes, and snippets.

@nitesh8860
Last active June 15, 2020 05:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nitesh8860/4475b9812b737ca7b24c404491b887b4 to your computer and use it in GitHub Desktop.
Save nitesh8860/4475b9812b737ca7b24c404491b887b4 to your computer and use it in GitHub Desktop.
calculating time taken for list growth with different methods using timeit
# List comprehensions are the fastest.
def test1():
l = []
for i in range(1000):
l = l + [i]
def test2():
l = []
for i in range(1000):
l.append(i)
def test3():
l = [i for i in range(1000)]
def test4():
l = list(range(1000))
from timeit import Timer
t1 = Timer("test1()", "from __main__ import test1")
print("concat ",t1.timeit(number=1000), "milliseconds")
t2 = Timer("test2()", "from __main__ import test2")
print("append ",t2.timeit(number=1000), "milliseconds")
t3 = Timer("test3()", "from __main__ import test3")
print("comprehension ",t3.timeit(number=1000), "milliseconds")
t4 = Timer("test4()", "from __main__ import test4")
print("list range ",t4.timeit(number=1000), "milliseconds")
#> concat 8.8770373 milliseconds
#> append 1.4146511999999998 milliseconds
#> comprehension 0.819254299999999 milliseconds
#> list range 0.28831890000000016 milliseconds
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment